博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Sort Colors
阅读量:5024 次
发布时间:2019-06-12

本文共 948 字,大约阅读时间需要 3 分钟。

题目: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.

思路:一种从头往后,但是判断条件逐渐减少。还有一种一直往后走,随之one,two,three起始条件也逐渐增加。

先给出第一种思路,还有一种思路暂时没有AC成功,不过很快了。

我的方法是从前往后迭代,只要颜色不为0,那就交换,这样子就把所有颜色为0的排列好,而且此时我还知道具体停止位置。同样的方法,继续排列颜色为1,颜色为2的。

再给出第二种思路,他的技巧在于遇到为1的不进行任何操作,遇到为0的则与把代表1的one往后挪一个,两者交换。同时,one与i基本保持一致,除非出现不是一种颜色的情况。

对于第三种颜色,更是一样,遇到他就和最后一个交换,同时记得将two-1;这种列子见得很少,是个非常好的解法。

代码:

class Solution {public:	void sortColors(vector
& nums) { int len=nums.size(); int one=0,two=0,three=0; for (int i=0;i

class Solution {public:	void sortColors(vector
& nums) { int len=nums.size(); int one=0,two=len-1; for (int i=0;i<=two;i++){ if (nums[i]==0){ swap(nums[i],nums[one]); one++; } if (nums[i]==2){ swap(nums[i],nums[two]); two--; i--; } } }};

转载于:https://www.cnblogs.com/jsrgfjz/p/8519920.html

你可能感兴趣的文章
浅谈 @RequestParam 和@PathVariable
查看>>
ASP.NET MVC 3–Global Action Filters
查看>>
图像切割之(一)概述
查看>>
JAVA修饰符类型(public,protected,private,friendly)
查看>>
flex利用webservice上传照片
查看>>
IOS开发之Bug--使用KVC的易错情况
查看>>
python list和tuple
查看>>
基础薄弱的反思
查看>>
[转]oracle10客户端PL/SQL Developer如何连接远程服务器上的oracle数据库
查看>>
HTML5 表单元素和属性
查看>>
使用SpringSocial开发QQ登录
查看>>
好玩的游戏
查看>>
代码说明call和apply方法的区别 (咱们这方面讲解的少,这样的题有变式,需要举例讲解一下)...
查看>>
T-SQL 类型转换
查看>>
在eclipse中设计BPMN 2.0工作流定义的根本步骤
查看>>
Json对象与Json字符串互转(4种转换方式)
查看>>
PAT甲级1002 链表实现方法
查看>>
查看Linux信息
查看>>
Python中sys模块sys.argv取值并判断
查看>>
【详记MySql问题大全集】四、设置MySql大小写敏感(踩坑血泪史)
查看>>