First Missing Positive - LeetCode 41
2015-06-20 19:12
288 查看
题目描述:
Given an unsorted integer array, find the first missing positive integer.
For example,
Given [1,2,0] return 3,
and [3,4,-1,1] return 2.
Your algorithm should run in O(n) time and uses constant space.
Tagg:Array
分析:根据题目要求,只需先排序,然后找到第一个整数,如果大于1,那么缺少的正数就是1,否则就从该处开始,找到第一个前后的元素相差大于1的元素,返回正确的正数即可。
Given an unsorted integer array, find the first missing positive integer.
For example,
Given [1,2,0] return 3,
and [3,4,-1,1] return 2.
Your algorithm should run in O(n) time and uses constant space.
Tagg:Array
分析:根据题目要求,只需先排序,然后找到第一个整数,如果大于1,那么缺少的正数就是1,否则就从该处开始,找到第一个前后的元素相差大于1的元素,返回正确的正数即可。
/**///////////////////4ms//*/ class Solution { public: int firstMissingPositive(vector<int>& nums) { if(nums.empty()) return 1; sort(nums.begin(),nums.end()); int n = nums.size(); int i = 0; for(;i != n; i++){ //找到第一个整数的位置 if(nums[i] > 0) break; } if(i < n){ //存在正数 if(nums[i]>1) //第一个正数大于1,那么返回1 return 1; for(int k = i+1; k < n; k++){ if(nums[k] > nums[k-1]+1){ //找到元素相差大于1的元素,那么较小者加1就是第一个缺失的正数 return nums[k-1]+1; } } return nums[n-1]+1; } else // 不存在正数数,那么第一个缺失的正数就是1 return 1; } };
相关文章推荐
- leetcode:Linked List Cycle
- 斐波那契查找(超详解)
- POJ 1183 反正切函数的应用(数论)
- 2015年大一下第15周项目1-平方根中的异常
- 斯坦福大学 iOS 7应用开发 ppt
- opencv 在 ubuntu14.04 中的配置和测试
- awk关系操作符
- 迈克尔杰克逊
- 黑马程序员——Java基础---面向对象(继承、多态、抽象类、接口、内部类)
- hdoj 1426 Sudoku Killer 【DFS经典题目】
- 剑指offer35:第一个只出现一次的字符(hash表使用)
- 的微信公众号开发 图灵机器人接口允许调用自己的微通道成为一个智能机器人
- linux 文件I/O 入门
- typedef和define的一些区别
- Python性能(转)
- windows 远程 ubuntu
- Android数据库ORMlite框架翻译系列(第二章:part 3)
- [原创]Ubuntu 14.04安装搜狗输入法
- 如何搭建.NET Entity Framework分布式应用系统框架
- Android数据库ORMlite框架翻译系列(第二章:part 2)