解題思路
不能用寫好的 sort 函式,而且要 in-place。提示裡面說紀錄 0 跟 1 的數量,所以就照這個做法。
程式碼
class Solution { public: void sortColors(vector<int>& nums) { int count0 = 0, count1 = 0; for(int i=0; i<nums.size(); i++) { if(nums[i] == 0) count0++; else if(nums[i] == 1) count1++; } for(int i=0; i<count0; i++) nums[i] = 0; for(int i=count0; i<count0+count1; i++) nums[i] = 1; for(int i=count0+count1; i<nums.size(); i++) nums[i] = 2; } };
沒有留言:
張貼留言