博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode 75颜色分类
阅读量:6284 次
发布时间:2019-06-22

本文共 928 字,大约阅读时间需要 3 分钟。

 

两趟扫描,由于排序变量的特殊性,使用计数排序方法可以明显降低至O(n)time O(n) space

关于计数排序:

class Solution {public:    void sortColors(vector
& nums) { if(nums.size()==0) return; int len=nums.size(); vector
arr(3,0); for(int num:nums) arr[num]++; int index=0; for(int i=0;i

 使用3个变量一趟扫描O(1) space O(n) time

/**使用3个变量来分别表示3个颜色;**/class Solution {public:    void sortColors(vector
& nums) { if(nums.size()==0) return; int len=nums.size(); int L=0,M=0,H=len-1; while(M<=H){ if(nums[M]==1){ M++;continue; } if(M<=H&&nums[M]==0){ swap(nums[M],nums[L]); L++;M++; } if(M<=H&&nums[M]==2){ swap(nums[M],nums[H]); H--; } } }};

 具体实现过程参见:

 

转载于:https://www.cnblogs.com/joelwang/p/10931303.html

你可能感兴趣的文章
Java中AES加密解密以及签名校验
查看>>
定义内部类 继承 AsyncTask 来实现异步网络请求
查看>>
VC中怎么读取.txt文件
查看>>
如何清理mac系统垃圾
查看>>
企业中最佳虚拟机软件应用程序—Parallels Deskto
查看>>
Nginx配置文件详细说明
查看>>
怎么用Navicat Premium图标编辑器创建表
查看>>
Spring配置文件(2)配置方式
查看>>
MariaDB/Mysql 批量插入 批量更新
查看>>
ItelliJ IDEA开发工具使用—创建一个web项目
查看>>
solr-4.10.4部署到tomcat6
查看>>
切片键(Shard Keys)
查看>>
淘宝API-类目
查看>>
virtualbox 笔记
查看>>
Git 常用命令
查看>>
驰骋工作流引擎三种项目集成开发模式
查看>>
SUSE11修改主机名方法
查看>>
jdk6.0 + Tomcat6.0的简单jsp,Servlet,javabean的调试
查看>>
Android:apk签名
查看>>
2(2).选择排序_冒泡(双向循环链表)
查看>>