41. First Missing Positive
来源:互联网 发布:爱淘宝女鞋新款 编辑:程序博客网 时间:2024/05/17 03:52
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.
长度为n的数组,可连续放入正整数1~n,此题要求时间复杂度为O(n),空间复杂度为常数。
可以通过两次遍历数组来完成,第一次遍历数组,通过交换,使得数组nums[i] = i+1,nums[0]~nums[n-1]中放入1~n;第二次遍历数组,查找nums[i] != i+1,(i+1)缺失;若1~n都不缺失,则返回n+1
public class Solution { public int firstMissingPositive(int[] nums) { int i = 0; int n = nums.length; //第一次遍历数组,通过交换,使得数组nums[i] = i+1,nums[0]~nums[n-1]中放入1~n //第二次遍历数组,nums[i] != i+1,(i+1)缺失;若1~n都不缺失,则返回n+1 while(i < n){ if( nums[i] >0 && nums[i] <= n && nums[i] != i+1 && nums[nums[i]-1] != nums[i]){ swap(nums,i,nums[i]-1); } else{ i++; } } for(int j = 0;j < n;j++){ if(nums[j] != j+1){ return j+1; } } return n+1; } private void swap(int[] nums,int i,int j){ int tmp = nums[i]; nums[i] = nums[j]; nums[j] = tmp; }}
0 0
- 41. First Missing Positive
- 41. First Missing Positive
- 41. First Missing Positive
- 41. First Missing Positive
- 41. First Missing Positive
- 41. First Missing Positive
- 41. First Missing Positive
- 41. First Missing Positive
- 41. First Missing Positive
- 41. First Missing Positive
- 41. First Missing Positive
- 41. First Missing Positive
- 41. First Missing Positive
- 41. First Missing Positive
- 41. First Missing Positive
- 41. First Missing Positive
- 41. First Missing Positive
- 41. First Missing Positive
- VS2008 C# 开发WM6.1 联结SQL2008数据库
- 【第八章】 对ORM的支持 之 8.2 集成Hibernate3 ——跟我学spring3
- ASPxGridView 用法整理
- nyoj An problem about date (蔡勒公式)
- 岁月是轮回的梦
- 41. First Missing Positive
- (shell笔记一)shell简介
- 打开sqlserver之后出现的问题:未将对象引用设置到对象的实例
- 聚类算法:DBScan算法
- Mybatis的<where><foreach><set>等标签详解
- 【c/c++】assert()函数
- 策略模式(StragetyPattern)学习记录
- HiveSql(2)Lateral view_转行为列
- Unity 3D Quaternion的使用