问题:可以说我们有两个包含相同编号的未知整数列表。但是,其中一个列表缺少一个数字。找到缺失号码最有效的是什么?查找两个列表中的缺失编号
我的方法:嵌套的for循环是这样的:
public int findMissing(int [] list1,int [] list2){
for(int i =0; i < list1.length(); i++){
for(int j=0; j < list2.length(); j++){
if(list1[i] != list2[j] && j == list2.length()-1)
return list2[j];
}
}
return;
说明比较第二列表中的每个项目在第一列表中的每个项目。如果您在循环结束时到达并且第一个列表中缺少第二个列表中的数字,则返回该数字。
让我知道是否有更好的方法来做到这一点。在运行时间方面更好。
列表的顺序是否相同? – ajon
对于小列表,你可以逃避这一点。但是,随着名单的增长,这个规模会很小。 –
一个问题:数组中的所有元素都是唯一的吗? – fge