LintCode 陣列劃分

2021-07-16 23:23:18 字數 959 閱讀 4320

給出乙個整數陣列 nums 和乙個整數 k。劃分陣列(即移動陣列 nums 中的元素),使得:

所有小於k的元素移到左邊

所有大於等於k的元素移到右邊

返回陣列劃分的位置,即陣列中第乙個位置 i,滿足 nums[i] 大於等於 k。

class solution:

"""@param nums: the integer array you should partition

@param k: as description

@return: the index after partition

"""def partitionarray(self, nums, k):

# write your code here

# you should partition the nums by k

# and return the partition index as description

if len(nums) == 0:

return 0

else:

return self.position(nums, k, 0, len(nums) - 1)

def position(self, nums, k, start, end):

i = start

j = end

while i < j:

while i <= j and nums[j] >= k:

j -= 1

while i <= j and nums[i] < k:

i += 1

if i < j:

temp = nums[i]

nums[i] = nums[j]

nums[j] = temp

i += 1

j -= 1

return i

注意 <= 和 < 的條件

LintCode 陣列劃分

給出乙個整數陣列nums和乙個整數k。劃分陣列 即移動陣列nums中的元素 使得 返回陣列劃分的位置,即陣列中第乙個位置i,滿足nums i 大於等於k。您在真實的面試中是否遇到過這個題?yes 樣例給出陣列nums 3,2,2,1 和 k 2,返回 1 注意你應該真正的劃分陣列nums,而不僅僅只...

LintCode 陣列劃分

陣列劃分 給出乙個整數陣列nums和乙個整數k。劃分陣列 即移動陣列nums中的元素 使得 所有小於k的元素移到左邊 所有大於等於k的元素移到右邊 返回陣列劃分的位置,即陣列中第乙個位置i,滿足nums i 大於等於k。樣例 給出陣列nums 3,2,2,1 和 k 2,返回 1 注意 你應該真正的...

LintCode 陣列劃分

給出乙個整數陣列nums和乙個整數k。劃分陣列 即移動陣列nums中的元素 使得 返回陣列劃分的位置,即陣列中第乙個位置i。滿足nums i 大於等於k。您在真實的面試中是否遇到過這個題?yes 例子 給出陣列nums 3,2,2,1 和 k 2。返回 1 注意 你應該真正的劃分陣列nums。而不只...