First Missing Positive
来源:互联网 发布:电子口岸数据分中心 编辑:程序博客网 时间:2024/05/17 13:08
1.题目
给出一个无序的正数数组,找出其中没有出现的最小正整数。
如果给出 [1,2,0]
, return 3
如果给出 [3,4,-1,1]
, return 2
2.算法
算法的基本思路是利用数组的index作为数组本身的索引,把正数按照递增顺序放在数组中,即让A[0]=1, A[1]=2, A[2]=3, ... , 这样一来,最后如果哪个数组元素违反了A[i]=i+1即说明i+1就是我们要求的第一个缺失的正数。对于那些不在范围内的数字,我们可以直接跳过,比如说负数,0,或者超过数组长度的正数,这些都不会是我们的答案。我们把不符合A[0]=1, A[1]=2, A[2]=3这样条件的一直变换,直到符合条件为止
public int firstMissingPositive(int[] a) {if (a == null || a.length == 0){return 1;}for (int i = 0; i < a.length; i++) //从头往后扫描,不符合条件就交换{if (a[i] > 0 && a[i] <= a.length && a[a[i] - 1] != a[i]){int temp = a[a[i] - 1]; //不符合就交换a[a[i] - 1] = a[i];a[i] = temp;i--;}}for (int i = 0; i < a.length; i++){if (a[i] != i + 1){return i + 1;}}return a.length + 1;}
0 0
- LeetCode: First Missing Positive
- LeetCode First Missing Positive
- LeetCode: First Missing Positive
- [Leetcode] First Missing Positive
- leetcode12: First Missing Positive
- First Missing Positive
- [LeetCode] First Missing Positive
- [Leetcode] First Missing Positive
- leetcode First Missing Positive
- LeetCode First Missing Positive
- [leetcode] first missing positive
- First Missing Positive
- LeetCode: First Missing Positive
- First Missing Positive
- First Missing Positive
- [LeetCode]First Missing Positive
- First Missing Positive
- First Missing Positive
- OpenGL 入门3
- git获取github远程仓库
- 百度地图
- Django运行访问项目出现的问题:DisallowedHost at / Invalid HTTP_HOST header
- Mysql数据库 (1)建表与简单查询
- First Missing Positive
- 【JZOJ4932】【NOIP2017提高组模拟12.24】B
- java集合Collection、List、map、ConcurrentHashMap讲解
- libgdx NativeLabel addListener点击事件没响应
- 虚拟机及Linux安装
- TensorFlow四种Cross Entropy算法实现和应用
- 引用
- mtr 使用笔记
- Mysql数据库 (2)函数