数组划分

作者: 只为此心无垠 | 来源:发表于2018-03-20 15:19 被阅读26次

给出一个整数数组 nums 和一个整数 k。划分数组(即移动数组 nums 中的元素),使得:

所有小于k的元素移到左边
所有大于等于k的元素移到右边
返回数组划分的位置,即数组中第一个位置 i,满足 nums[i] 大于等于 k。
LintCode题目地址

def partitionArray(self, nums, k):
        # write your code here
        n = len(nums)
        if n == 0:
            return 0
        
        start, end = 0,n - 1
        while start  <= end:
            while start <= end and nums[start] < k:
                start += 1
            while start <= end and nums[end] >= k:
                end -= 1
            if start <= end:
                tmp = nums[start]
                nums[start] = nums[end]
                nums[end] = tmp
                start += 1
                end -= 1
                
        return start

相关文章

  • 数组划分

    给出一个整数数组 nums 和一个整数 k。划分数组(即移动数组 nums 中的元素),使得: 所有小于k的元素移...

  • 数组划分

    描述 样例 代码实现

  • lintcode 数组划分

    给出一个整数数组 nums 和一个整数 k。划分数组(即移动数组 nums 中的元素),使得:所有小于k的元素移到...

  • 2018-08-22

    数组内存空间的划分、栈内存

  • JAVA 一维数组

    数组 JVM内存划分 A:内存划分 JVM对自己的内存划分为5个区域 * a: 寄存器:内存和CUP之间 * b:...

  • 数组切割

    将一个大的数组按照长度来划分成不同的小数组

  • 根据给定的值划分数组

    算法描述 给定一个数组和一个数k,划分数组,似的左边的值都小于k,右边的数大于等于k,返回划分数组的位置,例:[3...

  • 归并排序

    思路:基本思想是分治策略,先进行划分,再进行合并; 先将待排序数组C划分为两个数组A和B,从中间分开; 再分别对数...

  • LeetCode #1296 Divide Array in S

    1296 Divide Array in Sets of K Consecutive Numbers 划分数组为连...

  • leetCode进阶算法题+解析(八十七)

    分割数组 题目:给定一个数组 A,将其划分为两个连续子数组 left 和 right, 使得: left 中的每个...

网友评论

    本文标题:数组划分

    本文链接:https://www.haomeiwen.com/subject/uvymqftx.html