31.Partition Array
1.Description(Medium)
Given an arraynumsof integers and an intk, partition the array (i.e move the elements in "nums") such that:
All elements <k _are moved to the _left
All elements >=k _are moved to the _right
Return the partitioning index, i.e the first index i nums[i] >=k.
Notice
You should do really partition in array_nums_instead of just counting the numbers of integers smaller than k.
If all elements innums are smaller than k, then return nums.length
Example
If nums =[3,2,2,1]andk=2, a valid answer is1.
Can you partition the array in-place and in O(n)?
2.Code
经典的partition做法,quicksort的一部分
关于left<=right 而不是left<right:
在partition array这道题中,如果所有的数字都小于k的话, 你使用<符号,它并没有考虑到数组的最后一个数字.
Last updated
Was this helpful?