我有一个特定的数组,我想通过它检查数组中的两个值是否等于传递给函数的值,如果两个整数相等,则将其传递给一个新数组。
我通过使用两个向后的while循环并将长度缓存为变量来解决这个问题,这似乎很有效。但是,有人向我提到,可能有一种方法可以消除对其中一个循环的需求,并使其更加高效,从而优化 BIG O 表示法。
任何想法如何做到这一点?这就是我所拥有的...
var intArray = [1, 3, 7, 8, 10, 4, 6, 13, 0],
newArray = [],
i = intArray.length;
function arrayCheck(k) {
while(i--) {
var z = i;
while (z--) {
if (intArray[i] + intArray[z] === k) {
newArray.push(intArray[i]);
newArray.push(intArray[z]);
}
}
}
alert(newArray);
}
arrayCheck(8);