p41

LeetCode 41 First Missing Positive 题解

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.

题意:

输入一个数组,返回它所不包含的最小的正数。

2.解题思路:

桶装

3.代码


[title] [] [url] [link text]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 

public class Solution {
public int firstMissingPositive(int[] nums) {
int max = 0;
for (int i = 0; i < nums.length; i++) {
if (nums[i] > max)
max = nums[i];
}
max = max + 1;
int[] a = new int[max];
for (int i = 0; i < nums.length; i++) {
if (nums[i] > 0)
a[nums[i]]++;
}
for (int i = 1; i < max; i++) {

if (a[i] == 0)
return i;
}
return max;
}
}


4.一些总结: