Leetcode 75. Sort Colors
2016-01-24 09:24
465 查看
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.
排列数组中的0,1.2
代码
public class Solution {
public void sortColors(int[] nums) {
int length = nums.length;
int notRed = 0;
int notBlue = length - 1;
while(notRed < length && nums[notRed] == 0)
notRed++;
while(notBlue >= 0 && nums[notBlue] == 2)
notBlue--;
int i = notRed;
while(i <= notBlue){
int tem = nums[i];
if(tem == 0)
{
swap(nums,i,notRed);
notRed++;
i++;
}
else if(tem == 2){
swap(nums,i,notBlue);
notBlue--;
}
else
i++;
}
}
public void swap(int[] nums, int a, int b){
int tem = nums[a];
nums[a] = nums[b];
nums[b] = tem;
}
}
Here, we will use the integers 0, 1, and 2 to represent the color red, white, and blue respectively.
排列数组中的0,1.2
代码
public class Solution {
public void sortColors(int[] nums) {
int length = nums.length;
int notRed = 0;
int notBlue = length - 1;
while(notRed < length && nums[notRed] == 0)
notRed++;
while(notBlue >= 0 && nums[notBlue] == 2)
notBlue--;
int i = notRed;
while(i <= notBlue){
int tem = nums[i];
if(tem == 0)
{
swap(nums,i,notRed);
notRed++;
i++;
}
else if(tem == 2){
swap(nums,i,notBlue);
notBlue--;
}
else
i++;
}
}
public void swap(int[] nums, int a, int b){
int tem = nums[a];
nums[a] = nums[b];
nums[b] = tem;
}
}
相关文章推荐
- 一个U盘黑掉你:TEENSY实战(test)
- 2015年大二上-数据结构-图-1-(2)操作用邻接表存储的图
- RW RO ZI ROM keil中的含义
- webrtc
- android之基于高德地图的移动轨迹的可视化
- menu.lst是什么?
- BZOJ 1415: [Noi2005]聪聪和可可|概率dp
- WebService的相关使用
- 动画效果--漫天飞雪
- iOS开发中用到的一些第三方库
- 区分java中String+String和String+char
- 我想大声告诉你
- phpcms某处储存型XSS(demo+本地演示)
- 图片预览插件 fancyBox
- 移动安全之修改加密带sig签名的APP数据包
- poj-1472 Instant Complexity
- UVA 1589 象棋
- POJ 2437 Muddy roads(贪心)
- hdu5610 Baby Ming and Weight lifting(暴力)
- 1419: Red is good 概率与期望 DP