leetcode 75. 颜色分类(双指针)
生活随笔
收集整理的這篇文章主要介紹了
leetcode 75. 颜色分类(双指针)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
給定一個(gè)包含紅色、白色和藍(lán)色,一共 n 個(gè)元素的數(shù)組,原地對(duì)它們進(jìn)行排序,使得相同顏色的元素相鄰,并按照紅色、白色、藍(lán)色順序排列。
此題中,我們使用整數(shù) 0、 1 和 2 分別表示紅色、白色和藍(lán)色。
注意:
不能使用代碼庫中的排序函數(shù)來解決這道題。
示例:
輸入: [2,0,2,1,1,0]
輸出: [0,0,1,1,2,2]
代碼
class Solution {public void swap(int[] nums,int l,int r) {int temp=nums[l];nums[l]=nums[r];nums[r]=temp;}public void sortColors(int[] nums) {int l=0,r=0;//l指向0的位置, r指向1的位置for(int i=0;i<nums.length;i++){if(nums[i]==1){swap(nums,r,i);r++;//放置在1的位置}else if(nums[i]==0){swap(nums,i,l);if(l<r) //0后面的1被交換到了i位置,所以需要將i位置的1,放到r指向的位置(連續(xù)1的末尾){swap(nums,i,r);} l++;r++;}}} }總結(jié)
以上是生活随笔為你收集整理的leetcode 75. 颜色分类(双指针)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梦到亲人去世是暗示吗
- 下一篇: 梦到前任是谁在想谁