java在数组中查找缺少的元素
我的程序是:在一个数组中,存储1-10个数字,缺少一个数字,你怎么找到它
我尝试了下面的代码,但没有给出正确的输出
public class MissingNumber {
public static void main(String[] args) {
int arr[] = { 1, 2, 3, 4, 5, 6, 7, 9, 9, 10 };
System.out.println(arr.length);
int arr2[] = new int[10];
for (int i = 0; i < arr2.length; i++) {
arr2[i] = i + 1;
System.out.println("second array is : " + arr2[i]);
}
//compare two arrays i.e arr and arr2
for(int a=0;a<arr.length;a++){
for(int b=0;b<arr2.length;b++){
if(arr[a]==arr2[b]){
break;
}
else{
System.out.println("missing element is : "+arr[a]);
}
}
}
}
}
我要丢失的号码。谁能告诉我哪里出了问题吗
# 1 楼答案
删除第二个数组,您不需要它,并且在向原始数组添加元素后可能会导致错误
基本上,将测试替换为:
不要打断它,因为可能缺少更多元素
# 2 楼答案
检查下面的代码,查看输入数组是否为任意顺序或随机排列
公共类丢失编号{
}
# 3 楼答案
一旦两个阵列匹配,就可以从循环中跳出。从逻辑的角度,将其更改为(不需要嵌套循环):
但如果确定数组从1开始总是按顺序排列,则不需要另一个数组。就像这样做:
# 4 楼答案
它不起作用,因为您正在
arr
中循环寻找任何不在arr2
中的值,arr
中的每个元素都在arr2
中。您希望arr2
作为外部循环# 5 楼答案
也可以仅使用阵列本身来完成。请注意,只有当本问题中指定的一个数字缺失时,它才有效
比如
设数组为
array = {1,2,3,4,5,6,7,9,9,10}
现在,让我们假设数组并不总是被排序的,因此第一步是对数组进行排序
下一步是简单地检查数组在任何给定位置的值,如果
value != location + 1
,那么这就是缺少的数字# 6 楼答案
当你找到正确的匹配项时,你刚刚破译了密码:
只需使用以下命令:
或者用continue替换break