Sort Colors
来源:互联网 发布:mac spss许可证 编辑:程序博客网 时间:2024/05/21 14:59
class Solution {public: void sortColors(int A[], int n) { if(n==0) { return; } int ptr0=-1; int ptr2=n; int ptr1=0; while((ptr1<n)&&(A[ptr1]==0)) { ptr1++; } ptr0=ptr1; ptr1=n-1; while((ptr1>=0)&&(A[ptr1]==2)) { ptr1--; } ptr2=ptr1; if(ptr0>=ptr2) { return; } ptr1=ptr0; while((ptr0<=ptr1)&&(ptr1<=ptr2)) { switch(A[ptr1]) { case 0: A[ptr1]=A[ptr0]; A[ptr0]=0; ptr0++; ptr1=ptr0; break; case 1: ptr1++; break; case 2: A[ptr1]=A[ptr2]; A[ptr2]=2; ptr2--; break; } } }};
基本思路,维护3个位置值,姑且称其为指针。ptr0之前维护的值为0,ptr2之后维护的值为2,ptr0与ptr2之间(包括ptr0与ptr2)是待确定的值,用ptr1来扫描。ptr1与ptr0之间维护的是1。如果ptr1指向的值为0,则与ptr0位置处的值交换,如果ptr1指向的值为2,则与ptr2位置处的值交换。注意由于考虑的是ptr0与ptr2之间的值,所以每次更新ptr0后也要讲ptr1更新的新的位置。
0 0
- Sort Colors
- sort colors
- Sort Colors
- Sort Colors
- Sort Colors
- Sort Colors
- Sort Colors
- Sort Colors
- Sort Colors
- Sort Colors
- Sort Colors
- Sort Colors
- Sort Colors
- Sort Colors
- Sort Colors
- Sort Colors
- Sort Colors
- Sort Colors
- HLJU14级寒假集训之最短路专场
- iPhone消息推送机制实现与探讨
- python selenium安装
- UI Automation-SelectItemPattern
- ios Sqlite数据库增删改查基本操作
- Sort Colors
- UI Automation-ExpandCollapsePattern
- UI Automation-ValuePattern
- UI Automation-InvokePattern
- Windows Phone8.1中SD卡文件的读取写入方法汇总
- ArcSDE10.1 连接SQL Server 2008
- Redis研究(九)—有序集合类型 2
- 12306这样的超大规模实时事务系统到底应该怎么设计?其实不难
- 数据源(连接池)