1. 题目
读题
考查点
2. 解法
思路
代码逻辑
具体实现
解法一:
public class Solution {
public static void main(String[] args) {
System.out.println(solution(new int[]{1, 3, 6, 4, 1, 2}));
System.out.println(solution(new int[]{1, 2, 3}));
System.out.println(solution(new int[]{-1,-3}));
}
public static int solution(int[] A) {
for (int i = 1; i < Integer.MAX_VALUE; i++) {
if (!contain(A, i)) {
return i;
}
}
return -1;
}
public static boolean contain(int[] nums, int n) {
for (int i = 0; i < nums.length; i++) {
if (nums[i] == n) {
return true;
}
}
return false;
}
}
解法二:
public class Solution2 {
public static void main(String[] args) {
System.out.println(solution(new int[]{1, 3, 6, 4, 1, 2}));
System.out.println(solution(new int[]{1, 2, 3}));
System.out.println(solution(new int[]{-1, -3}));
}
public static int solution(int[] A) {
Arrays.sort(A);
int n = A.length;
if (A[n - 1] < 0) {
return 1;
}
int index = 1;
for (int i = 0; i < n; i++) {
if (A[i] <= 0 || (i > 0 && A[i] == A[i - 1])) {
continue;
}
if (A[i] == index) {
index++;
} else {
return index;
}
}
return index;
}
}