LeetCode75顏色分類

2021-09-29 10:56:46 字數 872 閱讀 8488

題目:

給定乙個包含紅色、白色和藍色,一共 n 個元素的陣列,原地對它們進行排序,使得相同顏色的元素相鄰,並按照紅色、白色、藍色順序排列。

此題中,我們使用整數 0、 1 和 2 分別表示紅色、白色和藍色。

注意:不能使用**庫中的排序函式來解決這道題。

示例:輸入: [2,0,2,1,1,0]

輸出: [0,0,1,1,2,2]

思路:標準的荷蘭國旗問題:

荷蘭國旗問題的模板

public  void partition(intarr,int left,int right,int num)else

}//這裡如果是用陣列中的元素作為參考,而這裡是給的,否則需要執行swap(arr,more,right)

}

快速排序在進行改進的時候也可以用這個模板,但是唯一的區別是num是陣列中的元素,因此,我們的**會有一些變化

public  void partition(intarr,int left,int right)else

}//注意了!!!,這裡需要進行交換

swap(arr,more,right);

}

所以此題的全部**為:

public void sortcolors(int nums) 

public void partition(intarr,int left,int right,int num)else

}//這裡如果是用陣列中的元素作為參考,則需要執行swap(arr,more,right)

}public void swap(int arr,int i,int j)

leetcode 75 顏色分類

給定乙個包含紅色 白色和藍色,一共 n 個元素的陣列,原地對它們進行排序,使得相同顏色的元素相鄰,並按照紅色 白色 藍色順序排列。此題中,我們使用整數 0 1 和 2 分別表示紅色 白色和藍色。注意 不能使用 庫中的排序函式來解決這道題。示例 輸入 2,0,2,1,1,0 輸出 0,0,1,1,2,...

leetcode75 顏色分類

給定乙個包含紅色 白色和藍色,一共 n 個元素的陣列,原地對它們進行排序,使得相同顏色的元素相鄰,並按照紅色 白色 藍色順序排列。此題中,我們使用整數 0 1 和 2 分別表示紅色 白色和藍色。注意 不能使用 庫中的排序函式來解決這道題。示例 輸入 2,0,2,1,1,0 輸出 0,0,1,1,2,...

leetcode75 顏色分類

給定乙個包含紅色 白色和藍色,一共 n 個元素的陣列,原地對它們進行排序,使得相同顏色的元素相鄰,並按照紅色 白色 藍色順序排列。此題中,我們使用整數 0 1 和 2 分別表示紅色 白色和藍色。注意 不能使用 庫中的排序函式來解決這道題。示例 輸入 2,0,2,1,1,0 輸出 0,0,1,1,2,...