以js为例:
优化前:时间复杂度为O(N2)
function hasDuplicateValue(array){
for(var i=0;i<array.length;i++){
for(var j=0;j<array.length;j++){
if(i!==j && array[i]==array[j]){
return true;
}
}
}
return false;
}
优化后:时间复杂度降为O(N);
function hasDuplicateValue(array){
var existingNumbers=[];
for(var i=0;i<array.length;i++){
if(existingNumbers[array[i]]===undefined){
existingNumbers[array[i]] = i;
}else {
return true;
}
}
return false;
}
// 该算法的缺点: