給出乙個整數陣列 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。而不只...