当前位置: 首页 > news >正文

Leetcode 75 Sort colors

题意:荷兰国旗问题,给一个数组[0,0,2,1,0],构造成[0,0,0,1,2]的形式,分成三块

https://leetcode.com/problems/sort-colors/description/

题解:
在任意时刻,i 左边的数都是 0,k 右边的数都是 2,而 i 到 j 之间的数都是 1。
想象有三个指针, i , j , k i, j, k i,j,k 维护 [ 0 , i ) [0,i) [0,i)为0,维护$[i,j)为1,[j, nums.size()]为2

想象有三个指针在动,i代表起始位置,k代表末尾位置,j遍历整个数组,移动j,当j的值指向的数字为0,的时候那么跟i交换,移动的过程中j >=i

class Solution {
public:void sortColors(vector<int>& nums) {for(int i = 0, j = 0, k = nums.size()-1; k >= j;) {if(!nums[j]) {swap(nums[i++], nums[j++]);} else if( nums[j] == 2) {swap(nums[j],nums[k--]);} else j++;}}
};

时间复杂度 O ( n ) O(n) O(n)
空间复杂度 O ( 1 ) O(1) O(1)

http://www.lryc.cn/news/483737.html

相关文章:

  • 如何进行数据库连接池的参数优化?
  • 有了miniconda,再也不用担心python、nodejs、go的版本问题了
  • openresty入门教程:init_by_lua_block
  • sol机器人pump机器人如何实现盈利的?什么是Pump 扫链机器人?
  • Spring-boot 后端java配置接口返回jsp页面
  • LabVIEW车辆侧翻预警系统
  • 亲测有效:Maven3.8.1使用Tomcat8插件启动项目
  • Find My电子体温计|苹果Find My技术与体温计结合,智能防丢,全球定位
  • jmeter常用配置元件介绍总结之后置处理器
  • html5多媒体标签
  • 51c自动驾驶~合集10
  • JAVA学习日记(十五) 数据结构
  • 室内定位论文精华-无人机与机器人在地下与室内环境中的自主导航与定位新技术
  • Java 中如何自定义一个类加载器,加载自己指定的类?
  • LeetCode【0037】解数独
  • 计算机视觉 ---常见图像文件格式及其特点
  • Cent OS-7的Apache服务配置
  • mysql每日一题(上升的温度,date数据的计算)
  • 前端人之网络通信概述
  • Python从0到100(七十二):Python OpenCV-OpenCV实现手势音量控制(文末送书)
  • 【云原生开发】K8S多集群管理系统成果展示
  • spring boot项目打成war包部署
  • 网络学习第四篇
  • 【资料】网络安全风险评估报告,风险管理报告,网络安全风险管理计划,网络安全网络安全能力验证报(Word原件)
  • Django基础用法+Demo演示
  • 【webrtc】 RTP 中的 MID(Media Stream Identifier)
  • React 中 为什么多个 JSX 标签需要被一个父元素包裹?
  • 记录日志中logback和log4j2不能共存的问题
  • 第5章: 图像变换与仿射操作
  • 【计算机网络】【网络层】【习题】