亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

數字數組和數字 k,返回數組中任意兩個數字之和是否為 k

數字數組和數字 k,返回數組中任意兩個數字之和是否為 k

天涯盡頭無女友 2023-07-06 14:47:39
findSums(arr, k) {   let hashMap   hashMap = {};   for (let value of arr) {      if (hashMap[value]) {         return true;      } else {         hashMap[k - value] = true      };   }   return false;}我有點困惑這個功能是如何工作的。hashMap[k - value]該位到底是如何用 k 推導出 2 個整數之和的arr?
查看完整描述

1 回答

?
翻過高山走不出你

TA貢獻1875條經驗 獲得超3個贊

您應該從else塊開始讀取它,然后再從if塊開始讀取。

所做hashMap[k - value] = true的就是跟蹤我們需要使用數組的k當前項獲得的數字。value

例如,如果kis11并且當前項value7,則將hashMap變為{ "4": true },這意味著我們正在尋找 a 4(因為7 + 4 == 11)。如果下一個value3,則hashMap變為,這意味著我們此時{ "4": true, "8": true }正在尋找 或4, ...8

現在,我們回到該if塊,該塊只是檢查當前是否value是我們正在查找的數字之一(上面示例中的the4或 the )。8如果是這樣,我們立即返回,true因為我們已經找到了兩個相加的數字,k因此無需繼續搜索。請注意,對于循環的第一次迭代,if無論如何都無法輸入此塊,因為hashMap它仍然是一個空的{}


查看完整回答
反對 回復 2023-07-06
  • 1 回答
  • 0 關注
  • 138 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號