LeetCode Solutions
75. Sort Colors
Time: $O(n)$ Space: $O(1)$
class Solution {
public:
void sortColors(vector<int>& nums) {
int zero = -1;
int one = -1;
int two = -1;
for (const int num : nums)
if (num == 0) {
nums[++two] = 2;
nums[++one] = 1;
nums[++zero] = 0;
} else if (num == 1) {
nums[++two] = 2;
nums[++one] = 1;
} else {
nums[++two] = 2;
}
}
};
class Solution {
public void sortColors(int[] nums) {
int zero = -1;
int one = -1;
int two = -1;
for (final int num : nums)
if (num == 0) {
nums[++two] = 2;
nums[++one] = 1;
nums[++zero] = 0;
} else if (num == 1) {
nums[++two] = 2;
nums[++one] = 1;
} else {
nums[++two] = 2;
}
}
}
class Solution:
def sortColors(self, nums: List[int]) -> None:
zero = -1
one = -1
two = -1
for num in nums:
if num == 0:
two += 1
one += 1
zero += 1
nums[two] = 2
nums[one] = 1
nums[zero] = 0
elif num == 1:
two += 1
one += 1
nums[two] = 2
nums[one] = 1
else:
two += 1
nums[two] = 2