我声明了另一个数组,并将void数组元素复制到该数组,然后继续寻求解决方案,但它表明我无法将void数组转换为int数组,为什么它会像这样显示?
static void minimumBribes(int[] q) {
int[] arr=new int[q.length];
int dif;
for(int i=0;i<q.length;i++){
arr[i]= q[i];
}
arr=Arrays.sort(arr);
sol: for(int i=0;i<arr.length;i++){
for(int j=0;j<arr.length;j++){
if(q[i]==arr[j]){
dif=Math.abs(i-j);
if(dif >2){
System.out.println("Too chaotic");
break sol;
}
break;
}
}
}
}
答案 0 :(得分:1)
java.util.Arrays.sort()方法不返回任何值。
由于行arr=Arrays.sort(arr);
当您执行Arrays.sort(arr);时它会覆盖相同的arr数组。
请检查参考文档。函数Arrays.sort()
对数组进行排序并返回void
。替换
arr = Arrays.sort(arr);
仅
Arrays.sort(arr);
该函数对要传递的数组进行排序。如果希望原始数组不变,请首先使用Arrays.copyOf()
创建一个副本。