75. Sort Colors
2016-05-27 13:03
330 查看
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的数组,数组无序,需要排序最终结果类似于[0,0,0,0,1,1,1,1,2,2,2,2,2]。
解题方法:可以遍历数组,对0,1,2分别计数,然后BlaBlaBla向下写。
下面代码是看到的一个比较好的思路,即使有多个颜色也是可以扩展。
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的数组,数组无序,需要排序最终结果类似于[0,0,0,0,1,1,1,1,2,2,2,2,2]。
解题方法:可以遍历数组,对0,1,2分别计数,然后BlaBlaBla向下写。
下面代码是看到的一个比较好的思路,即使有多个颜色也是可以扩展。
public class Solution { public void sortColors(int[] nums) { if(nums==null||nums.length==0) return; int i=-1,j=-1,k=-1; for(int x=0;x<nums.length;x++){ if(nums[x]==0){ nums[++i]=2; nums[++j]=1; nums[++k]=0; } else if(nums[x]==1){//此处必须要有else,否则if==0后可能会再次进入此if中。因为nums内容已变 nums[++i]=2; nums[++j]=1; } else if(nums[x]==2){ nums[++i]=2; } } } }
相关文章推荐
- 289. Game of Life
- 349. Intersection of Two Arrays I &&II (Java)
- 11. Container With Most Water
- 48. Rotate Image
- 几个字符串相关的题目,来自LeetCode和LintCode
- 347. Top K Frequent Element(java)
- 109. Convert Sorted List to Binary Search Tree
- 2. Add Two Numbers(Java)
- 142. Linked List Cycle I&II
- 66. Plus One(Java) & 43. Multiply Strings
- 154. Find Minimum in Rotated Sorted Array II
- 59. Spiral Matrix II
- 64. Minimum Path Sum
- 实践——程序破解
- THE ONE使用笔记(2)——路由算法顽健性分析
- linux免密码互相登录
- Git裸仓库和非裸仓库
- iOS开发中(Xcode)常见报错和解决办法
- zabbix server is running | No.解决方法