leetCode刷题记录 Sort Colors
来源:互联网 发布:vb页面跳转 编辑:程序博客网 时间:2024/06/03 15:22
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.
思路:排序题,但是要O(n)复杂度。 可以用直接交换
下面是两种解决方案
package lintcode;public class SortColors { public static void main(String[] args) { int[] nums = new int[]{0,1,2,1,1,2,1,0,1,1}; sortColors2(nums); } //方法一 public static void sortColors(int[] nums) { int r=0, w=0; // label the end of different colors; for(int num: nums){ if(num == 0) { nums[w++]=1; nums[r++]=0; } else if(num==1) nums[w++]=1; } for (int i = w; i < nums.length;++i) nums[i] = 2; } //方法二 public static void sortColors2(int[] A) { int n = A.length; int second=n-1, zero=0; for (int i=0; i<=second; i++) { while (A[i]==2 && i<second) swap(A, i, second--); while (A[i]==0 && i>zero) swap(A, i, zero++); } } private static void swap(int[] A, int i, int j){ int temp = A[i]; A[i] = A[j]; A[j] = temp; }}
阅读全文
0 0
- leetCode刷题记录 Sort Colors
- Leetcode刷题记——75. Sort Colors(颜色排序)
- leetcode刷题记录
- leetcode刷题记录
- leetcode刷题记录
- leetcode 刷题记录
- leetcode刷题记录
- Leetcode刷题记录
- Leetcode刷题记录
- leetcode 刷题记录
- LeetCode刷题记录
- 【LeetCode刷题记录】
- leetCode 刷题记录 Candy
- LeetCode 刷题记录 目录
- leetcode刷题记录4--依然数组
- leetcode刷题记录5--依旧数组
- [LeetCode刷题记录]Single Number II
- [LeetCode刷题记录]Partition List
- php封装好的curl操作
- linux下编译live555
- Bootstrap 3.3.7学习笔记6
- WKWebView 进度条
- java基础点
- leetCode刷题记录 Sort Colors
- 快速排序——复习
- Frament+ViewPager
- jquery全解(1)
- 模拟试——repair
- 计算机网络总结
- js中onblur和onfocus事件(用于文本框)
- 余弦计算相似度度量【转】 此博文包含图片(2014-11-17 10:18:40)转载▼ 标签: 数学 基础 自然语言处理分类: 学习 http://blog.csdn.net/u0121606
- Spring 03