forked from qiyuangong/leetcode
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path075_Sort_Colors.py
More file actions
34 lines (33 loc) · 1.06 KB
/
075_Sort_Colors.py
File metadata and controls
34 lines (33 loc) · 1.06 KB
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
28
29
30
31
32
33
34
class Solution(object):
# def sortColors(self, nums):
# """
# :type nums: List[int]
# :rtype: void Do not return anything, modify nums in-place instead.
# """
# # simple counting sort
# count = [0] * 3
# for num in nums:
# count[num] += 1
# pos = 0
# for index in range(3):
# while count[index] > 0:
# nums[pos] = index
# pos += 1
# count[index] -= 1
# return
def sortColors(self, nums):
# https://leetcode.com/discuss/85658/sharing-c-solution-with-good-explanation
low, mid, high = 0, 0, len(nums) - 1
while mid <= high:
if nums[mid] == 0:
# swap low mid
nums[low], nums[mid] = nums[mid], nums[low]
low += 1
mid += 1
elif nums[mid] == 1:
mid += 1
else:
# swap mid high
nums[high], nums[mid] = nums[mid], nums[high]
high -= 1
return