【算法题】获取一个数组中没有出现的最小正整数
有一道算法题是这样的,给出一个整形数组(包括正整数或者负整数),我们需要找出这个整形数组中没有出现的最小的整数, 题目如下
给一个整形数组int[] A, 要求返回数组A中没有出现的最小正整数
比如 数组
A = [1, 3, 6, 4, 2, 1] 应该返回5
A = [1,2] 应该返回3
A = [-1,-3,-5] 应该返回0
数组中个数的范围是 [1..100,000]; 数组中每个元素的值的范围是 [−1,000,000..1,000,000].
这个题目的解法如下
class Solution { public int solution(int[] A) { Arrays.sort(A); int lastElement = A[A.length - 1]; if (lastElement<= 0) { return 1; } else { int i; for (i = 1; i < (lastElement + 1); i++) if (!check(A, i)) return i; } return lastElement + 1; } boolean check(int[] A, int b) { for (int i = 0; i < A.length; i++) { if (b == A[i]) return true; } return false; } }