1纯丸、兩數(shù)之和(2021-05-13)

每日前言:

有子曰:“其為人也孝弟偏形,而好犯上者,鮮矣觉鼻;不好犯上俊扭,而好作亂者,未之有也坠陈。君子務(wù)本萨惑,本立而道生。孝弟也者仇矾,其為仁之本與庸蔼?”

子曰:巧言令色,鮮矣仁贮匕。

自定義前言:

子曰:不憤不啟姐仅,不悱不發(fā)。舉一隅不以三隅反粗合,則不復(fù)也萍嬉。

題目:

給定一個(gè)整數(shù)數(shù)組 nums 和一個(gè)整數(shù)目標(biāo)值 target,請(qǐng)你在該數(shù)組中找出 和為目標(biāo)值 的那 兩個(gè) 整數(shù)隙疚,并返回它們的數(shù)組下標(biāo)壤追。

你可以假設(shè)每種輸入只會(huì)對(duì)應(yīng)一個(gè)答案。但是供屉,數(shù)組中同一個(gè)元素在答案里不能重復(fù)出現(xiàn)行冰。

你可以按任意順序返回答案溺蕉。

示例 1:

輸入:nums = [2,7,11,15], target = 9
輸出:[0,1]
解釋:因?yàn)?nums[0] + nums[1] == 9 ,返回 [0, 1] 悼做。
示例 2:

輸入:nums = [3,2,4], target = 6
輸出:[1,2]
示例 3:

輸入:nums = [3,3], target = 6
輸出:[0,1]

提示:

2 <= nums.length <= 103
-109 <= nums[i] <= 109
-109 <= target <= 109
只會(huì)存在一個(gè)有效答案

來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/two-sum

分析:

拿到這個(gè)題目疯特,先分析,目標(biāo)是針對(duì)一個(gè)數(shù)組進(jìn)行操作肛走,數(shù)組漓雅,用[]表示,元素可重復(fù)朽色,元素類型可為數(shù)字邻吞、字符、對(duì)象葫男、數(shù)組(多維數(shù)組)抱冷、函數(shù);其本身就是一種特殊對(duì)象梢褐,用typeof()返回Object旺遮;.length(不過濾空位)屬性返回成員數(shù)量,可人為設(shè)置length值;運(yùn)算符in盈咳,適用于對(duì)象耿眉,也適用于數(shù)組,判斷是否存在猪贪;for...in(過濾空位)循環(huán)不僅可以遍歷對(duì)象跷敬,也可以遍歷數(shù)組,遍歷數(shù)組所有鍵,數(shù)組值的遍歷用for循環(huán)热押、while循環(huán)西傀、forEach(過濾空位);典型的“類似數(shù)組的對(duì)象”是函數(shù)的arguments對(duì)象,可以用slice方法將“類似數(shù)組的對(duì)象”變成真正的數(shù)組桶癣。
數(shù)組擴(kuò)展:擴(kuò)展運(yùn)算符(spread)是三個(gè)點(diǎn)(...)拥褂,將一個(gè)數(shù)組轉(zhuǎn)為用逗號(hào)分隔的參數(shù)序列,可替換apply方法牙寞,可復(fù)制數(shù)組(直接復(fù)制等于復(fù)制了指針饺鹃,依然可操作原數(shù)據(jù)),可合并數(shù)組间雀,可解構(gòu)賦值悔详,可將字符串轉(zhuǎn)為數(shù)組,實(shí)現(xiàn) Iterator 接口的對(duì)象(只要具有 Iterator 接口的對(duì)象惹挟,都可以使用擴(kuò)展運(yùn)算符)茄螃;可用Array.from方法將兩類對(duì)象(類似數(shù)組的對(duì)象(array-like object)和可遍歷(iterable)的對(duì)象)轉(zhuǎn)為真正的數(shù)組;Array.of()方法用于將一組值连锯,轉(zhuǎn)換為數(shù)組归苍;數(shù)組實(shí)例的copyWithin()方法用狱,在當(dāng)前數(shù)組內(nèi)部,將指定位置的成員復(fù)制到其他位置(會(huì)覆蓋原有成員)拼弃,然后返回當(dāng)前數(shù)組夏伊。也就是說,使用這個(gè)方法吻氧,會(huì)修改當(dāng)前數(shù)組溺忧;實(shí)例方法還有 find() 、findIndex()盯孙、fill()(填充)砸狞、entries()(遍歷鍵值對(duì))、keys() (遍歷鍵)镀梭、 values()(遍歷值)、includes()(判斷包含)踱启、flat()(拉平)报账,flatMap()(遍歷元素執(zhí)行函數(shù));ES2019 明確規(guī)定埠偿,Array.prototype.sort()的默認(rèn)排序算法必須穩(wěn)定透罢。復(fù)習(xí)了一下數(shù)組。

通過題意冠蒋,發(fā)現(xiàn)最后輸出的也是一個(gè)數(shù)組羽圃,期間要對(duì)數(shù)組進(jìn)行操作,而且是key - value 的鍵值對(duì)操作抖剿,所以想到用哈希結(jié)構(gòu)(映射)Map()朽寞。
Map()方法has(判斷是否存在)、set(賦值)斩郎、get(讀饶匀凇)、size屬性(返回 Map 結(jié)構(gòu)的成員總數(shù))缩宜、delete肘迎、clear;遍歷方法跟數(shù)組一樣entries()(遍歷鍵值對(duì))锻煌、keys() (遍歷鍵)妓布、 values()(遍歷值)、forEach宋梧。

接下來就是怎么實(shí)現(xiàn)的問題了匣沼,定義一個(gè)空Map(),遍歷數(shù)組乃秀,使用.length肛著,利用其不過濾空位的特性圆兵,因?yàn)閠arget+空=target,利用Map的has判斷target - nums[i]是否存在枢贿,如果不存在殉农,key - value交換位置放入Map,如果存在局荚,輸出兩個(gè)索引值超凳。

解答:

/**
 * @param {number[]} nums
 * @param {number} target
 * @return {number[]}
 */
var twoSum = function(nums, target) {
    //確保nums存在
    if(!nums) return [];
    //定義一個(gè)空Map
    const map = new Map();
    for (let i = 0; i < nums.length; i++) {
        //將nums[i]---i形式的鍵值對(duì)放入map的同時(shí)進(jìn)行遍歷匹配
        if (map.has(target - nums[i])) {
            //只遍歷一次,也保證索引不重復(fù)
            return [map.get(target - nums[i]), i]
        }
        map.set(nums[i], i)
    }
    return ;

};
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末耀态,一起剝皮案震驚了整個(gè)濱河市轮傍,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌首装,老刑警劉巖创夜,帶你破解...
    沈念sama閱讀 211,948評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異仙逻,居然都是意外死亡驰吓,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門系奉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來檬贰,“玉大人,你說我怎么就攤上這事缺亮∥痰樱” “怎么了?”我有些...
    開封第一講書人閱讀 157,490評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵萌踱,是天一觀的道長葵礼。 經(jīng)常有香客問我,道長虫蝶,這世上最難降的妖魔是什么章咧? 我笑而不...
    開封第一講書人閱讀 56,521評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮能真,結(jié)果婚禮上赁严,老公的妹妹穿的比我還像新娘。我一直安慰自己粉铐,他們只是感情好疼约,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,627評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蝙泼,像睡著了一般程剥。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,842評(píng)論 1 290
  • 那天织鲸,我揣著相機(jī)與錄音舔腾,去河邊找鬼。 笑死搂擦,一個(gè)胖子當(dāng)著我的面吹牛稳诚,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播瀑踢,決...
    沈念sama閱讀 38,997評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼扳还,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了橱夭?” 一聲冷哼從身側(cè)響起氨距,我...
    開封第一講書人閱讀 37,741評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎棘劣,沒想到半個(gè)月后俏让,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,203評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡茬暇,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,534評(píng)論 2 327
  • 正文 我和宋清朗相戀三年舆驶,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片而钞。...
    茶點(diǎn)故事閱讀 38,673評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖拘荡,靈堂內(nèi)的尸體忽然破棺而出臼节,到底是詐尸還是另有隱情,我是刑警寧澤珊皿,帶...
    沈念sama閱讀 34,339評(píng)論 4 330
  • 正文 年R本政府宣布网缝,位于F島的核電站,受9級(jí)特大地震影響蟋定,放射性物質(zhì)發(fā)生泄漏粉臊。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,955評(píng)論 3 313
  • 文/蒙蒙 一驶兜、第九天 我趴在偏房一處隱蔽的房頂上張望扼仲。 院中可真熱鬧,春花似錦抄淑、人聲如沸屠凶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽矗愧。三九已至,卻和暖如春郑原,著一層夾襖步出監(jiān)牢的瞬間唉韭,已是汗流浹背夜涕。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評(píng)論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留属愤,地道東北人女器。 一個(gè)月前我還...
    沈念sama閱讀 46,394評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像春塌,于是被迫代替她去往敵國和親晓避。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,562評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容