日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > 【一天一道LeetCode】#75. Sort Colors

【一天一道LeetCode】#75. Sort Colors

來源:程序員人生   發布時間:2016-06-15 14:34:38 閱讀次數:2683次

1天1道LeetCode

本系列文章已全部上傳至我的github,地址:ZeeCoder‘s Github
歡迎大家關注我的新浪微博,我的新浪微博
歡迎轉載,轉載請注明出處

(1)題目

Given an array with n objects colored red, white or blue, sort them so that objects of the same color are adjacent, with the colors in the order red, white and blue.

Here, we will use the integers 0, 1, and 2 to represent the color red, white, and blue respectively.

Note:
You are not suppose to use the library’s sort function for this problem.

Follow up:
A rather straight forward solution is a two-pass algorithm using counting sort.
First, iterate the array counting number of 0’s, 1’s, and 2’s, then overwrite array with total number of 0’s, then 1’s and followed by 2’s.

Could you come up with an one-pass algorithm using only constant space?

(2)解題

題目大意:數組包括0,1,2,依照大小排列這些數字。

1、最簡單的方法

利用STL的sort1句話就解決了。

class Solution { public: void sortColors(vector<int>& nums) { sort(nums.begin(),nums.end()); } };

2、兩個指針

算法思想很簡單,把所有的0交換到隊首,把所有的1交換到隊尾

class Solution { public: void sortColors(vector<int>& nums) { int start = 0; int end = nums.size()-1; for(int i = 0 ; i<nums.size();i++)//把0交換到前面 { if(nums[i]==0) { if(i!=start) swap(nums[i],nums[start]); start++; } } for(int i = nums.size()-1 ; i>=start ;i--)//把2交換到尾部 { if(nums[i]==2){ if(i!=end) swap(nums[i],nums[end]); end--; } } } };

3、兩個指針優化版

保持3個指針i、j和k,從0~i表示1,i+1~j表示1,k~nums.size()表示2
代碼也比較簡單:

class Solution { public: void sortColors(vector<int>& nums) { int i = 0, j = i, k = nums.size() - 1; while(j <= k){ if(nums[j] == 0) swap(nums[i++], nums[j++]);//0交換到前面 else if(nums[j] == 1) j++;//1保持不動 else swap(nums[k--], nums[j]);//2交換到尾部 } } };
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 欧美一区二区三区爱爱 | 最近中文字幕mv在线资源 | 国产精品v亚洲精品v日韩精品 | 在线激情网站 | 美女又爽又黄视频毛茸茸 | av麻豆| 欧美理论在线观看 | 日韩精品在线视频 | 久久精品国产v日韩v亚洲 | 日韩中文字幕久久 | 日韩精品一区二区三区四区 | av在线成人 | 免费亚洲网站 | 99精品视频免费在线观看 | 日韩中文字幕第一页 | 亚洲第一福利视频 | 亚洲欧洲在线观看 | 国产精品精品久久久 | 一区二视频 | www.黄.com | 99精品免费久久 | 久久精品国产99国产精品 | 欧美国产综合 | 日本高清视频在线 | 91麻豆精品国产91久久久使用方法 | 精品成人一区二区三区 | 国产在线资源 | 在线啊v | 曰韩在线 | 国产一二三区在线 | 亚洲欧美日韩高清 | 欧美黄色一区二区 | 成人免费视频播放 | 精品av| 欧美韩日一区 | 嫩草影院地址 | 福利av在线| 久久久com| 国产精品一区二区在线播放 | 日韩精品一区二区三区av | 99久久精品免费看国产免费软件 |