Leetcode 75. Sort Colors
来源:互联网 发布:陕西广电网络宽带套餐 编辑:程序博客网 时间:2024/06/02 03:58
题目
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.
思路
排好首尾
代码
package leetcodeArray;public class Leetcode75SortColors { public void sortColors(int[] nums) { int second = nums.length - 1, zero = 0; for(int i = 0; i <= second; ++i){ while(nums[i] == 2 && i < second) swap(nums, i, second--); while(nums[i] == 0 && i > zero) swap(nums, i, zero++); } } public void swap(int[] array,int x,int y) { int temp = array[x]; array[x] = array[y]; array[y] = temp; } public static void main(String[] args){ Leetcode75SortColors test = new Leetcode75SortColors(); int[] nums = {0, 1, 1, 2, 2, 2}; test.sortColors(nums); }}
他山之玉
// two pass O(m+n) spacevoid sortColors(int A[], int n) { int num0 = 0, num1 = 0, num2 = 0; for(int i = 0; i < n; i++) { if (A[i] == 0) ++num0; else if (A[i] == 1) ++num1; else if (A[i] == 2) ++num2; } for(int i = 0; i < num0; ++i) A[i] = 0; for(int i = 0; i < num1; ++i) A[num0+i] = 1; for(int i = 0; i < num2; ++i) A[num0+num1+i] = 2;}// one pass in place solutionvoid sortColors(int A[], int n) { int n0 = -1, n1 = -1, n2 = -1; for (int i = 0; i < n; ++i) { if (A[i] == 0) { A[++n2] = 2; A[++n1] = 1; A[++n0] = 0; } else if (A[i] == 1) { A[++n2] = 2; A[++n1] = 1; } else if (A[i] == 2) { A[++n2] = 2; } }}// one pass in place solutionvoid sortColors(int A[], int n) { int j = 0, k = n - 1; for (int i = 0; i <= k; ++i){ if (A[i] == 0 && i != j) swap(A[i--], A[j++]); else if (A[i] == 2 && i != k) swap(A[i--], A[k--]); }}// one pass in place solutionvoid sortColors(int A[], int n) { int j = 0, k = n-1; for (int i=0; i <= k; i++) { if (A[i] == 0) swap(A[i], A[j++]); else if (A[i] == 2) swap(A[i--], A[k--]); }}
阅读全文
0 0
- [LeetCode]75.Sort Colors
- LeetCode --- 75. Sort Colors
- [Leetcode] 75. Sort Colors
- [leetcode] 75.Sort Colors
- 【leetcode】75. Sort Colors
- [leetcode] 75. Sort Colors
- Leetcode 75. Sort Colors
- *LeetCode 75. Sort Colors
- 75. Sort Colors LeetCode
- Leetcode 75. Sort Colors
- [LeetCode]75. Sort Colors
- LeetCode 75. Sort Colors
- LeetCode *** 75. Sort Colors
- leetcode 75. Sort Colors
- LeetCode 75. Sort Colors
- leetcode-75. Sort Colors
- [leetcode]75. Sort Colors
- LeetCode-75.Sort Colors
- 【VB.net自学笔记(一)】XML的构成
- 设计模式的7大原则
- 全球搜索引擎Top10 可惜很多人只用过第四个
- SEO高手是这样策划网站的 涨知识了
- HBase的KeyValue分析
- Leetcode 75. Sort Colors
- Java 代码规范,你应该知道的一些工具和用法
- mybatis>mapper中直接返回boolean型数据以及相关注意事项
- 集合和数组的比较
- c语言初步经典题7--发工资问题
- 【Error】在实现人脸验证的过程中遇到的错误集锦
- COJ1980-不堪重负的树
- Javascript基本了解
- JavaScript的windows对象常用方法