Problem: 75. 顏色分類
文章目錄
- 題目描述
- 思路及解法
- 復雜度
- Code
題目描述
思路及解法
由于題目只提供0,1,2分別代表顏色紅、白、藍,并按此排序,那么我們可以遍歷兩次數組,第一次將0,全部放到數組前面一部分,第二次將1全部放到0的后面(這些操作均可以通過交換數組中的元素實現)
復雜度
時間復雜度:
O ( n ) O(n) O(n);其中 n n n為數組的大小
空間復雜度:
O ( n ) O(n) O(n)
Code
class Solution {/*** Sort Colors** @param nums Given array*/public void sortColors(int[] nums) {int index = 0;for (int i = 0; i < nums.length; ++i) {if (nums[i] == 0) {int temp = nums[i];nums[i] = nums[index];nums[index++] = temp;}}for (int i = index; i < nums.length; ++i) {if (nums[i] == 1) {int temp = nums[i];nums[i] = nums[index];nums[index++] = temp;}}}
}