【LeetCode】Sort Colors 陣列排序
題目:Sort color
<span style="font-size:18px;">/*LeetCode sort colors
題目:輸入一個陣列,包含0,1,2分別代表紅白藍三種顏色,要求按照0,1,2的順序,將同類顏色的連續排列
思路:計數排序,是一個遍歷兩遍的方法:可以先統計每種的數量,之後直接將這一範圍內的所有值都賦值為相應的數字即可
遍歷一遍的話可以在遍歷的同時分別與0和2比較,從頭和尾一起交換,1的在中間不用做處理;
*
*/
package javaTrain;
public class Train13 {
public void sortColors(int[] A) {
int n = A.length;
int red = 0,blue = n-1;
for(int i=0;i < blue+1;){ //因為會從後向前推進所以以blue表示尾部,確保只用遍歷一遍
int temp = A[i];
if(temp == 0){
A[i++] = A[red]; //因為red在前,所以交換時它指向的只能是0或1,所以交換後的位置可以向前移
A[red++] = temp;
}
else if(temp == 2){
A[i] = A[blue]; //而blue在後,它指向的之前並沒有被比較過有可能有0,1,2所以交換的點不能向前移
A[blue--] = temp;
}
}
}
}
</span>
相關文章
- Leetcode Sort ColorsLeetCode
- 75. Sort Colors(Leetcode每日一題-2020.10.07)LeetCode每日一題
- Leetcode每日一題:992.sort-array-by-parity-ii(按奇偶排序陣列Ⅱ)LeetCode每日一題排序陣列
- Javascript陣列排序sort方法和自定義排序方法JavaScript陣列排序
- JavaScript中陣列Array.sort()排序方法詳解JavaScript陣列排序
- 【LeetCode】905.按奇偶排序陣列LeetCode排序陣列
- 關於js陣列方法sort()負數排序的陷阱JS陣列排序
- LeetCode 33——搜尋旋轉排序陣列LeetCode排序陣列
- LeetCode 關於陣列的相對排序LeetCode陣列排序
- PAT乙級——1092(陣列排序 自定義sort)Java實現陣列排序Java
- Arr::sort()輔助函式對多維陣列的排序函式陣列排序
- Leetcode[陣列] 26. 刪除排序陣列中的重複項LeetCode陣列排序
- LeetCode 81——搜尋旋轉排序陣列 IILeetCode排序陣列
- LeetCode33. 搜尋旋轉排序陣列LeetCode排序陣列
- LeetCode#33搜尋旋轉排序陣列LeetCode排序陣列
- LeetCode33 搜尋旋轉排序陣列LeetCode排序陣列
- 【LeetCode(Java) - 33】搜尋旋轉排序陣列LeetCodeJava排序陣列
- leetCode33搜尋旋轉排序陣列LeetCode排序陣列
- JavaScript 使用sort()方法從數值上對陣列進行排序JavaScript陣列排序
- LeetCode每日一題: 按奇偶排序陣列(No.905)LeetCode每日一題排序陣列
- LeetCode-兩個排序陣列的中位數LeetCode排序陣列
- LeetCode_1636_按照頻率將陣列升序排序LeetCode陣列排序
- LeetCode C++ 56. Merge Intervals【排序/陣列】中等LeetCodeC++排序陣列
- leetcode, LC68:旋轉排序陣列搜尋LeetCode排序陣列
- 陣列排序陣列排序
- 在命令列用 sort 進行排序命令列排序
- LeetCode 4. 兩個排序陣列的中位數LeetCode排序陣列
- LeetCode-4. 兩個排序陣列的中位數LeetCode排序陣列
- LeetCode每日一題: 按奇偶排序陣列 II(No.27)LeetCode每日一題排序陣列
- 陣列的排序陣列排序
- 物件陣列排序物件陣列排序
- js陣列排序JS陣列排序
- JavaScript 陣列排序JavaScript陣列排序
- sort排序排序
- LeetCode之從排序陣列中刪除重複項-SwiftLeetCode排序陣列Swift
- LeetCode1122. 陣列的相對排序(20201114每日一題)LeetCode陣列排序每日一題
- 為什麼處理排序陣列比未排序陣列快排序陣列
- 陣列氣泡排序陣列排序
- 陣列選擇排序陣列排序