【LeetCode】Sort Colors
来源:互联网 发布:网页动画制作软件 编辑:程序博客网 时间:2024/04/30 04:50
题目
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.
解答最简单的方法,先统计出现0、1、2出现的次数,然后直接给数组赋值就ok了
public class Solution { public void sortColors(int[] A) { int rnum=0; int wnum=0; int bnum=0; for(int i=0;i<A.length;i++){ if(A[i]==0) rnum++; else if(A[i]==1) wnum++; else bnum++; } for(int i=0;i<rnum;i++) A[i]=0; for(int i=0,j=rnum;i<wnum;i++) A[j++]=1; for(int i=0,j=rnum+wnum;i<bnum;i++) A[j++]=2; }}
另外,因为顺序是0,1,2,可对头尾进行操作
public void sortColors(int[] A){int end=A.length-1;int start=0;for(int i=0;i<=end;i++){if(A[i]==0){swap(A,i,start);start++;}if(A[i]==2){swap(A,i,end);end--;i--; //判断交换后改位的数}}}void swap(int[] A,int i,int j){int tmp=A[i];A[i]=A[j];A[j]=tmp;}
---EOF---
0 0
- LeetCode: Sort Colors
- LeetCode Sort Colors
- LeetCode : Sort Colors
- leetcode 77: Sort Colors
- Leetcode 75 Sort Colors
- leetcode 101: Sort Colors
- [LeetCode]Sort Colors
- [leetcode]Sort Colors
- LeetCode-Sort Colors
- [leetcode] Sort Colors
- [LeetCode] Sort Colors
- [leetCode] Sort Colors
- LeetCode - Sort Colors
- leetcode:Sort Colors
- LeetCode | Sort Colors
- 【LeetCode】Sort Colors
- Leetcode: Sort Colors
- [LeetCode] Sort Colors
- POCO C++库学习和分析 -- 日志 (一)
- Unique Paths
- C# 通过反射获取类库下的所有窗体
- 如何加快xcode编译速度
- 程序哲学how to make love,简称 html
- 【LeetCode】Sort Colors
- SlipButton——滑动开关
- 开源项目之Android 推送框架(androidpn)
- ubuntu 清除tomcat缓存
- linux 增加swap分区
- 动态规划之矩阵连乘
- DNS应该怎么设置
- Android之Task Activity
- Sublime Text 添加插件Package Control