题目描述
blablabla
算法1
先排序,再找到最小的元素的前一个位置
时间复杂度
首先排序需要最优O(Nlog2N),然后空间O(N)
参考文献
JAVA 代码
import java.util.Arrays;
import java.util.Scanner;
public class Main{
public static int solution(int[] array){
Arrays.sort(array);
int[] hash = new int[array.length];
if (array[0] > 0){
return 0;
}else if (array.length == 1){
return 1;
}
else {
for (int i : array) {
hash[i]++;
}
for (int i = 0; i < hash.length; i++) {
if (hash[i] == 0){
return i;
}
}
}
return 0;
}
public static void main(String[] args) {
try (Scanner s = new Scanner(System.in)){
int n = s.nextInt();
int[] arr = new int[n];
for (int i = 0; i < arr.length; i++) {
arr[i] = s.nextInt();
}
System.out.println(solution(arr));
}
}
}
这个是不是相当于还是刷了一遍数组
是的