Chinaunix首页 | 论坛 | 博客
  • 博客访问: 40206
  • 博文数量: 37
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 372
  • 用 户 组: 普通用户
  • 注册时间: 2013-10-12 23:27
文章分类

全部博文(37)

文章存档

2014年(5)

2013年(32)

我的朋友

分类: C/C++

2014-01-21 20:20:38

扫描一遍。是0放到前面,是2放到后面,最后中间就是1。用两个变量记录已经放了多少0和2。


点击(此处)折叠或打开

  1. class Solution {
  2. public:
  3.     void sortColors(int A[], int n) {
  4.         int pos1=0;
  5.         int pos2=n-1;
  6.         
  7.         for(int i=0;i<=pos2;)
  8.         {
  9.             if(0==A[i]) {int tmp=A[i]; A[i]=A[pos1]; A[pos1]=tmp; pos1++;i++;}
  10.             else if(2==A[i]) {int tmp=A[i]; A[i]=A[pos2]; A[pos2]=tmp; pos2--;}
  11.             else i++;
  12.         }
  13.         return ;
  14.     }
  15. };


阅读(1417) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~