第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

使用map函數(shù)代替嵌套循環(huán)條件JS

使用map函數(shù)代替嵌套循環(huán)條件JS

慕絲7291255 2023-08-05 21:00:38
我有以下函數(shù),它接受一個(gè)數(shù)字?jǐn)?shù)組和一個(gè)目標(biāo)值,如果可以添加數(shù)組中的任何 2 個(gè)數(shù)字來(lái)給出目標(biāo)值,則該函數(shù)返回 true,否則返回 false。例如,如果 array = [5,4,2,3,1] 且 target = 9,則該函數(shù)應(yīng)返回 true,即 5+4=9。但是,如果 target = 10,該函數(shù)應(yīng)返回 false,因?yàn)閿?shù)組中沒(méi)有 2 個(gè)數(shù)字可以相加得到 10。function Solution(array,target) {    for (var i = 0;i<array.length;i++) {      for (var j=0;j!=i && j<array.length;j++) {        if (array[i] + array[j] == target) {        return true      }    }  }  return false}上面的函數(shù)按預(yù)期工作,但是我認(rèn)為這不是一個(gè)好的方法,有人可以向我展示使用地圖函數(shù)的更有效的方法嗎?
查看完整描述

3 回答

?
慕桂英4014372

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超13個(gè)贊

您可以采用一個(gè)以所需增量作為鍵的哈希表。


這種方法只需要一次迭代。


function solution(array, target) {

    const seen = {};

    for (const value of array) {

        if (seen[value]) return true;

        seen[target - value] = true;

    }

    return false;

}


console.log(solution([5, 4, 3, 2, 1], 9));  //  true

console.log(solution([5, 4, 3, 2, 1], 10)); // false


查看完整回答
反對(duì) 回復(fù) 2023-08-05
?
犯罪嫌疑人X

TA貢獻(xiàn)2080條經(jīng)驗(yàn) 獲得超4個(gè)贊

這是使用數(shù)組某種方法的簡(jiǎn)單一行解決方案。


const Solution = (array, target) =>

  array.some((x, i) => array.some((y, j) => i !== j && x + y === target));


console.log(Solution([5, 4, 2, 3, 1], 9));

console.log(Solution([5, 4, 3, 2, 1], 10));

console.log(Solution([5, 4, 3, 2, 1], 5));


查看完整回答
反對(duì) 回復(fù) 2023-08-05
?
www說(shuō)

TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超8個(gè)贊

您可以維護(hù) aSet來(lái)提高效率。

當(dāng)您在數(shù)組中遇到新數(shù)字時(shí),從目標(biāo)總和中減去該數(shù)字。這將告訴您需要與當(dāng)前數(shù)字相加的金額才能達(dá)到目標(biāo)總和。您可以使用 O(1) 檢查該數(shù)字/金額是否在集合中.has()。如果它在集合中,您可以返回 true,否則,您可以將該數(shù)字添加到集合中以檢查數(shù)組的進(jìn)一步迭代。

請(qǐng)參閱下面的示例:

function solution(array, target) {

? const set = new Set();

? for(const num of array) {

? ? if(set.has(target-num))

? ? ? return true;


? ? set.add(num);

? }

? return false;

}


console.log(solution([5,4,2,3,1], 9));


查看完整回答
反對(duì) 回復(fù) 2023-08-05
  • 3 回答
  • 0 關(guān)注
  • 208 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)