博客
关于我
41. First Missing Positive
阅读量:414 次
发布时间:2019-03-06

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

Given an unsorted integer array, find the smallest missing positive integer.

Example 1:

Input: [1,2,0]Output: 3

Example 2:

Input: [3,4,-1,1]Output: 2

Example 3:

Input: [7,8,9,11,12]Output: 1

Note:

Your algorithm should run in O(n) time and uses constant extra space.

 
 AC code:
class Solution {public:    int firstMissingPositive(vector
& nums) { int len = nums.size(); for (int i = 0; i < len; ++i) { while (nums[i] > 0 && nums[i] <= len && nums[nums[i]-1] != nums[i]) { int temp = nums[nums[i]-1]; nums[nums[i]-1] = nums[i]; nums[i] = temp; } } for (int i = 0; i < len; ++i) { if (nums[i] != i + 1) { return i+1; } } return len+1; }};
Runtime: 
0 ms, faster than 100.00% of C++ online submissions for First Missing Positive.

 

桶排序(Bucket sort)或所谓的箱排序,是一个,工作的原理是将分到有限数量的桶里。每个桶再个别排序(有可能再使用别的或是以递归方式继续使用桶排序进行排序)。桶排序是的一种归纳结果。当要被排序的数组内的数值是均匀分配的时候,桶排序使用线性时间({\displaystyle \Theta (n)}())。但桶排序并不是,他不受到{\displaystyle O(n\log n)}下限的影响。

桶排序以下列程序进行:

  1. 设置一个定量的数组当作空桶子。
  2. 寻访序列,并且把项目一个一个放到对应的桶子去。
  3. 对每个不是空的桶子进行排序。
  4. 从不是空的桶子里把项目再放回原来的序列中。

 

转载地址:http://lgtuz.baihongyu.com/

你可能感兴趣的文章
码云 Pages 搭建
查看>>
《论可计算数及其在判定上的应用》简单理解
查看>>
中国剩余定理证明过程
查看>>
kafka告警简单方案
查看>>
java接口中多继承的问题
查看>>
java中Object.equals()简单用法
查看>>
一个小例子对多态简单的理解
查看>>
poj 2187 Beauty Contest(凸包求解多节点的之间的最大距离)
查看>>
poj 2492A Bug's Life(并查集)
查看>>
POJ 2312Battle City(BFS-priority_queue 或者是建图spfa)
查看>>
ZZUOJ 1199 大小关系(拓扑排序,两种方法_判断入度和dfs回路判断)
查看>>
java中自动装箱的问题
查看>>
zyUpload+struct2完成文件上传
查看>>
程序员的开发文档
查看>>
mybatis generator修改默认生成的sql模板
查看>>
cglib动态代理导致注解丢失问题及如何修改注解允许被继承
查看>>
算法 - 如何从股票买卖中,获得最大收益
查看>>
机器学习-KNN算法原理 && Spark实现
查看>>
大数据开发-Spark-拷问灵魂的5个问题
查看>>
算法 - 链表操作思想 && case
查看>>