这道题也不是很难,但是inplace置换的思想比较重要,而且要注意pointer的边界
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
class (object): def sortColors(self, nums): """ :type nums: List[int] :rtype: void Do not return anything, modify nums in-place instead. """ i = 0 j = len(nums) - 1 k = 0 while i <= j and i >= k: if nums[i] == 0: self.swap(nums, i, k) k += 1 i += 1 elif nums[i] == 2: self.swap(nums, i, j) j -= 1 else: i += 1 def swap(self, nums, i, j): nums[i], nums[j] = nums[j], nums[i]
|
近期评论