lc75-Sort Colors 發表於 2016-12-24 | 分類於 leetcode | 0 comments | 123456789101112131415161718class Solution {public: void sortColors(vector<int>& nums) { int l = 0, r = nums.size()-1; int i = 0; while (i <= r) { while(nums[r] == 2) r--; while(nums[l] == 0) l++; while (nums[i] == 2 && i < r) { swap(nums[i], nums[r--]); } while (nums[i] == 0 && i > l) { swap(nums[i], nums[l++]); } i++; } }}; 12345678910111213141516171819class Solution {public: void sortColors(vector<int>& nums) { int l = nums.size(); int a[3] = {0,0,0}; for (int i = 0; i < l; i++) { a[nums[i]]++; } for (int i = 0; i < a[0]; i++) { nums[i] = 0; } for (int i = a[0]; i < a[0]+a[1]; i++) { nums[i] = 1; } for (int i = a[0]+a[1]; i < l; i++) { nums[i] = 2; } }};