顏色排序(Sort Colors)

一、學習要點:
1.定義red指針指向開頭位置,blue指針指向末尾位置;
2.從頭開始遍歷原數組,如果遇到0,則交換該值和red指針指向的值,並將red指針後移一位。若遇到2,則交換該值和blue指針指向的值,並將blue指針前移一位。若遇到1,則繼續遍歷;
二、代碼:

class Solution
{
public:
	void sortColors(vector<int>&,nums)
	{
		int red=0,blue=nums.size()-1;
		for(int i=0;i<=blue;i++)
		{
			if(nums[i]==0)
			{
				swap(nums[i],nums[red++]);
			}else if(nums[i]==2)
			{
				swap(nums[i--],nums[blue--])
			}
		}
	}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章