给定一个整数数组 A,查找数组中是否存在整数 p,使得数组中大于 p 的整数个数等于 p。如果存在任何这样的整数 p,则返回 1,否则返回 -1。
我尝试过,但这只通过了一些测试用例..
public class Solution {
public int solve(int[] A) {
Arrays.sort(A);
int [] newarr = new int [A.length];
for (int i = A.length -1 ; i >=0 ; i--){
newarr[A.length-1-i]=A[i];
}
for (int i = 0 ; i < A.length ; i++){
if (newarr[i]==i){
return 1;
}
}
return -1;
}
}
因此,查看您的代码,我可以看到您正在对数组进行排序,然后检查数组的索引是否等于元素本身。这并不适用于所有情况,因为它不能确保数组中大于 p 的整数数量等于 p。