亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

javascript - 下面的這段算法代碼求解釋

瀏覽:72日期:2023-04-02 16:39:01

問題描述

javascript - 下面的這段算法代碼求解釋

就是關(guān)于這個算法的代碼,用javascript實現(xiàn)的,但是下面這個算法沒看懂。求大神解釋。

var twoSum = function(nums, target) { var ret = []; var exist = {}; for(var i = 0; i < nums.length; i++){if(typeof(exist[target - nums[i]]) !== ’undefined’){ ret.push(exist[target - nums[i]]); ret.push(i + 1);}exist[nums[i]] = i + 1; }return ret};

問題解答

回答1:

題主可以試著用例子代入進去走讀一遍代碼。下面是我的見解:

比如就按截圖里的例子:

for循環(huán)里主要是遍歷第一個參數(shù)數(shù)組,然后它做的關(guān)鍵兩個步驟:

我們先看if后面那個, exist[nums[i]] = i + 1; 這句是每個循環(huán)都會執(zhí)行的,exist在這里是字典的意思,比如遍歷第一個數(shù)是2(i=0),于是exist就保存了:{2:1} 這樣的鍵值對,所以一遍循環(huán)下來,exist將會是:數(shù)組反過來,“元素值”:'數(shù)組索引+1'的鍵值對字典。

接下來,再去看if里面的判斷,當然for循環(huán)i=0時,exist還沒有注入鍵值對,if表達式為false

但到了i=1的時候 exist[target-nums[1]] 即exist[9-7] = exist[2], 這不就是剛才i=0的時候,就注入exist的第一個鍵值對么?于是乎,把對應(yīng)的鍵值對的值(其實就是原數(shù)值的在原來數(shù)組的索引+1)存檔ret去,接著又把當前的 i+1 也存到ret……最后循環(huán)走完,返回ret,于是得到了[1,2] ps:題主給的例子答案跟代碼的不一致。

總結(jié):這個算法核心就是利用的對象exist來存已遍歷過的數(shù)組元素,利用target-nums[i] 反過來間接通過exist來查找數(shù)組已遍歷過的元素是否存在符合條件的元素。

標簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 免费看的黄色网址 | 国产在线精品成人一区二区三区 | 国产一级一片免费播放刺激 | 亚洲国产精品一区二区三区在线观看 | 欧美日韩不卡视频一区二区三区 | 韩国日本一级毛片免费视频 | 国产成人一区二区三区在线播放 | 日韩一区二区不卡 | 黄色片日韩 | 久本草在线中文字幕亚洲欧美 | 99精品国产一区二区三区 | 久久国产首页 | 亚洲一级在线 | 特a级毛片 | 玖玖在线国产精品 | 欧美成人午夜精品免费福利 | 亚洲第一二三四区 | 国产美女一区二区在线观看 | 欧美日韩国产一区二区三区播放 | 成人黄色一级毛片 | 免费亚洲一区 | 成人网址在线观看 | 亚洲综合欧美 | 黄色大片国产 | 中文无码日韩欧免费视频 | 久久夜色精品国产亚洲 | 国产吧在线 | 国产人成午夜免视频网站 | 久久乐国产精品亚洲综合18 | 一区二区三区在线免费观看视频 | 久久免费毛片 | 性欧美视频a毛片在线播放 性欧美视频在线观看 | 国产免费又色又爽视频 | 亚洲精品久久玖玖玖玖 | 丁香综合在线 | 国产精品嫩草影院在线 | 一级毛片毛片毛毛片毛片 | ssss国产在线观看 | 国产亚洲欧洲日韩综合v | 色片在线播放 | 瑟妃19禁福利视频在线看mp4 |