gpt4 book ai didi

javascript - 如何减少 Javascript 中的两个循环以提高效率

转载 作者:行者123 更新时间:2023-11-28 20:56:56 24 4
gpt4 key购买 nike

我有一个特定的数组,我想通过它检查数组中的两个值是否等于传递给函数的值,如果这两个整数相等,则将其传递到一个新数组中。

我通过使用两个向后的 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);

最佳答案

有一种算法可以在线性 [O(n)] 时间内解决这个问题。我建议你看看这个SO answer .

此外,正如其他人所说,将答案标记为已接受将使人们更有可能回答您的问题。您可能希望重新审视之前提出的问题并接受任何值得的答案。

关于javascript - 如何减少 Javascript 中的两个循环以提高效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11892149/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com