First Missing Positive
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.
题目大意:
- 按依次顺序找到数组中第一个缺少的正整数。
- 时间复杂度要求为O(n),空间复杂度为O(1)
解题思路:
- 因为要求空间复杂度为O(1)所以,不能使用额外的空间,只能在原数组上进行处理,最先开始想到先把数组排序,再去判断,但是,现有的排序算法中没有O(n)效率,最低也只有快排,而且代码量长需要用到额外的空间。
- 查询discuss,其他的答案,发现他们的解法很棒。
解法有如下:
1 | public int firstMissingPositive(int[] A) { |