我给了一个双打数组,所有数字除了一个都相等。我的任务是找到唯一的号码。我的代码返回正确的输出,现在我想知道如何进一步优化它。如何进一步优化我的代码?
这是我的代码:
public static double findUnique(double array[]) {
double unique = 0;
double common = 0;
for(int i=0; i<array.length; i++) {
for(int j=i+1; j<array.length; j++) {
if(array[i]==array[j]) {
common = array[i];
}
}
if(common!=array[i]) {
unique = array[i];
}
}
return unique;
}
我能想到的首先是存储数组的长度的唯一的事情,但有些测试后实际所花的时间。谢谢。
好吧,现在我觉得没有测试这个愚蠢。我在'if'语句中使用了'break',这大大减少了所需的时间。尽管如此,我仍然愿意回答。 – Helquin
真的很容易。看看'array [0]','array [1]','array [2]'。如果它们中的任何一个与其他的不同,则返回唯一的一个。如果全部相同,则在'array [3 ... N-1]'中搜索**不等于'array [0]'的一个元素。 –
@IwillnotexistIdonotexist谢谢你的建议,我会根据这个做一个新的方法。 – Helquin