leetcode 75 Sorted Colors
2024-09-30 20:31:43
两种解法
1)记录0和1的个数
然后按照记录的个数将0和1重新放入原数组,剩下的补2
2)双指针left,right
left表示0~left-1都为0,即i之前都为0
right表示right+1~nums.length都为2,即j之后都为2
遍历原数组
a)遇到为0的就把当前nums[i]与nums[left]交换
b)遇到为2的就交换nums[i]&nums[right],注意,写代码的时候要考虑交换过来的nums[right]有可能是2,如果i正常迭代变成i+1,漏掉了nums[right]为2的情况,所以我们这里i要减1
那么为什么前面a)不需要i减一呢?因为按照我们对left的定义,nums[left]不可能为0
class Solution {
public void sortColors(int[] nums) {
int len = nums.length;
int index=0, i=0, j=len-1; while(index <= j){
if(nums[index] == 0){
nums[index] = nums[i];
nums[i++] = 0;
} if(nums[index] == 2){
nums[index] = nums[j];
nums[j--] = 2;
index--;
}
index++;
} }
}
最新文章
- 1.值得推荐的C/C++框架和库 (转)
- POJ2823 Sliding Window (单调队列)
- Some tips on using HashSet<;T>; and List<;T>;
- blockUI
- Controller.RedirectToAction 方法
- BZOJ 1677: [Usaco2005 Jan]Sumsets 求和
- PHP命名空间的概念与使用
- 【Eclipse】给web项目打war包
- 第三章 go语言 程序的流程控制
- 2018-2019-2 20175328 《Java程序设计》第八周学习总结
- 自制模态窗体闪烁效果: MessageBeep &; FlashWindowEx
- mysql的基本查询(等于,不等于,between...and...,)
- caffe 测试时间报错 Aborted at unix time
- lazy-mock ,一个生成后端模拟数据的懒人工具
- 20155314 2016-2017-2 《Java程序设计》第2周学习总结
- xshell显示隐藏窗口页签
- 模板中的 TemplateBinding 问题
- python 数据清洗
- ZT 创建类模式总结篇
- sqoop 1.99.7 安装及配置
热门文章
- IDEA快捷键(收集自网络后整理)
- zabbix配置文件解析
- thinkphp 获取模板地址
- kubernetes istio的快速安装和使用例子
- 关于maven工程将model删除重建之后变为灰色的问题的解决
- System.Web.Mvc.HttpPostAttribute.cs
- 多进程并发socket通信
- Git合并时遇到冲突或错误后取消合并
- <;Django>; 第三方扩展
- nput=";file"; 浏览时只显示指定excel文件,筛选特定文件类型