亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

LeetCode - 001 - 兩數(shù)之和(two-sum)

habren / 3513人閱讀

摘要:解法返回目錄解題代碼執(zhí)行測(cè)試解題思路使用雙重循環(huán)破解。解法返回目錄解題代碼執(zhí)行測(cè)試知識(shí)點(diǎn)遍歷數(shù)組,返回遍歷項(xiàng),返回當(dāng)前索引。

Create by jsliang on 2019-05-16 22:19:13
Recently revised in 2019-05-17 14:22:40

Hello 小伙伴們,如果覺得本文還不錯(cuò),記得給個(gè) star , 小伙伴們的 star 是我持續(xù)更新的動(dòng)力!GitHub 地址

LeetCode 攻略地址

一 目錄

不折騰的前端,和咸魚有什么區(qū)別

目錄
一 目錄
二 前言
三 解題
?3.1 解法 - for()
?3.2 解法 - indexOf()
?3.3 解法 - Map
二 前言

返回目錄

難度:簡(jiǎn)單

涉及知識(shí):數(shù)組、哈希表

題目地址:leetcode-cn.com/problems/tw…

題目?jī)?nèi)容

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

你可以假設(shè)每種輸入只會(huì)對(duì)應(yīng)一個(gè)答案。但是,你不能重復(fù)利用這個(gè)數(shù)組中同樣的元素。

示例:

給定 nums = [2, 7, 11, 15], target = 9

因?yàn)?nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
三 解題

返回目錄

官方題解:leetcode-cn.com/problems/tw…

解題千千萬,官方獨(dú)一家,上面是官方使用 Java 進(jìn)行的題解。

小伙伴可以先自己在本地嘗試解題,再看看官方解題,最后再回來看看 jsliang 講解下使用 JavaScript 的解題思路。

3.1 解法 - for()

返回目錄

解題代碼

var twoSum = function(nums, target) {
  for (let i = 0; i < nums.length; i++) {
    for (let j = i + 1; j < nums.length; j++) {
      if (nums[j] === target - nums[i]) {
        return [i, j];
      }
    }
  }
};

執(zhí)行測(cè)試

    nums[1, 3, 2, 5, 6]

    target: 8

    return

[1, 3]

解題思路:使用雙重 for 循環(huán)破解。

    第一遍過濾 nums 數(shù)組,標(biāo)記為 i。

    第二遍再次過濾 nums 數(shù)組,標(biāo)記為 i + 1,因?yàn)槲覀兪菍?duì)數(shù)組中的兩個(gè)數(shù)字相加,所以不能重復(fù)使用同一個(gè)數(shù)字。

    判斷第二次遍歷的數(shù)字中,它是否等于 target - nums[i],如果成立就返回兩個(gè)數(shù)字的索引。(并不考慮后面還有可成立的答案)。

3.2 解法 - indexOf()

返回目錄

解題代碼

var twoSum = function(nums, target) {
  let result = [];
  nums.map((item, index) => {
    if (nums.indexOf(target - item) > -1 && nums.indexOf(target - item) != index) {
      result = [index, nums.indexOf(target - item)].sort((a, b) => a > b);
    }
  });
  return result;
};

執(zhí)行測(cè)試

    nums[4, 3, 2, 5, 6]

    target: 8

    return

[2, 4]

知識(shí)點(diǎn)

    map():遍歷數(shù)組,item 返回遍歷項(xiàng),index 返回當(dāng)前索引。map() 詳細(xì)介紹

    indexOf():判斷數(shù)組中是否存在判斷條件中的值。如果存在,則返回第一次出現(xiàn)的索引;如果不存在,則返回 -1。indexOf() 詳細(xì)介紹

    sort():排序,保持返回?cái)?shù)組的數(shù)字為順序排列。sort() 詳細(xì)介紹

解題思路

首先,我們開辟一塊內(nèi)存 result。

然后,我們通過 map() 遍歷 nums,并使用 indexOf() 尋找除當(dāng)前 itemindex 之外和 item 相加之和為 target 的結(jié)果。

最后,我們返回查找的最新結(jié)果,該結(jié)果進(jìn)行了排序([4, 2] 的返回通過 sort() 排序變成 [2, 4]

例如,在上面測(cè)試 twoSum([1, 3, 2, 5, 6], 8) 的結(jié)果就有:

[1, 3]
[2, 4]
[3, 1]
[4, 2]

我們?nèi)∽詈笠淮蔚慕Y(jié)果并排序返回,即:[2, 4]

進(jìn)一步思考:如果我們將 map() 換成 for(),你知道該如何操作么?

3.3 解法 - Map

返回目錄

解題代碼

var twoSum = function(nums, target) {
  let map = new Map();
  for (let i = 0; i < nums.length; i++) {
    if (map.has(nums[i])) {
      return [map.get(nums[i]), i];
    } else {
      map.set(target - nums[i], i);
    }
  }
};

執(zhí)行測(cè)試

    nums[4, 3, 2, 5, 6]

    target: 8

    return

[1, 3]

知識(shí)點(diǎn)

    Map:保存鍵值對(duì)。任何值(對(duì)象或者原始值) 都可以作為一個(gè)鍵或一個(gè)值。Map 詳細(xì)介紹

解題思路

首先,我們需要了解 Map 這個(gè)對(duì)象。

    它可以通過 set() 的形式,以 [key, value] 的形式保存一組數(shù)據(jù)。(題目中對(duì)應(yīng) key 就是存入的 target - nums[i] 值,value 就是索引)

    它可以通過 get() 的形式,獲取到傳入 key 值對(duì)應(yīng)的 value。

    它可以通過 has() 的形式,判斷 Map 對(duì)象里面是否存儲(chǔ)了傳入 key 對(duì)應(yīng)的 value

然后,我們遍歷 nums 數(shù)組。

最后,我們判斷 nums[i] 是否存在于 Map 對(duì)象中。沒有的話,就存入 target - nums[i]Map 中。有的話,因?yàn)樯洗未嫒氲氖?target- nums[i],有點(diǎn)類似于解題的鑰匙,既然我們看到 nums[i] 存在于 Map 中,它是解題的鑰匙,所以我們只需要返回 [map.get(nums[i]), i] 這組值即可。


jsliang 廣告推送:
也許小伙伴想了解下云服務(wù)器
或者小伙伴想買一臺(tái)云服務(wù)器
或者小伙伴需要續(xù)費(fèi)云服務(wù)器
歡迎點(diǎn)擊 云服務(wù)器推廣 查看!


jsliang 的文檔庫 由 梁峻榮 采用 知識(shí)共享 署名-非商業(yè)性使用-相同方式共享 4.0 國(guó)際 許可協(xié)議進(jìn)行許可。
基于github.com/LiangJunron…上的作品創(chuàng)作。
本許可協(xié)議授權(quán)之外的使用權(quán)限可以從 creativecommons.org/licenses/by… 處獲得。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/7282.html

相關(guān)文章

  • LeetCode 攻略 - 2019 年 7 月上半月匯總(55 題攻略)

    摘要:微信公眾號(hào)記錄截圖記錄截圖目前關(guān)于這塊算法與數(shù)據(jù)結(jié)構(gòu)的安排前。已攻略返回目錄目前已攻略篇文章。會(huì)根據(jù)題解以及留言內(nèi)容,進(jìn)行補(bǔ)充,并添加上提供題解的小伙伴的昵稱和地址。本許可協(xié)議授權(quán)之外的使用權(quán)限可以從處獲得。 Create by jsliang on 2019-07-15 11:54:45 Recently revised in 2019-07-15 15:25:25 一 目錄 不...

    warmcheng 評(píng)論0 收藏0
  • 兩數(shù)之和問題各變種多解法小結(jié)

    摘要:兩數(shù)之和問題各變種多解法小結(jié)聲明文章均為本人技術(shù)筆記,轉(zhuǎn)載請(qǐng)注明出處兩數(shù)之和等于題目大意給出未排序數(shù)組和指定目標(biāo),返回?cái)?shù)組中兩數(shù)之和的組合元素下標(biāo)要求下標(biāo)從開始,而且,保證題目中有且只有個(gè)可行解解法暴力時(shí)間復(fù)雜度求解解題思路暴力二重循環(huán)求解 兩數(shù)之和問題各變種多解法小結(jié) 聲明 文章均為本人技術(shù)筆記,轉(zhuǎn)載請(qǐng)注明出處:[1] https://segmentfault.com/u/yzwal...

    lentoo 評(píng)論0 收藏0
  • leetcode系列】001-兩數(shù)之和

    摘要:題意給定一個(gè)整數(shù)數(shù)組和一個(gè)目標(biāo)值,請(qǐng)你在該數(shù)組中找出和為目標(biāo)值的那兩個(gè)整數(shù),并返回他們的數(shù)組下標(biāo)。也就是說,字典里記錄的是每個(gè)數(shù)據(jù)希望找到的另一半的值的大小。返回這兩個(gè)下標(biāo)就行,如果沒有存在于字典里,那么繼續(xù)存入字典。 showImg(https://segmentfault.com/img/bVbvgPA); 題意: 給定一個(gè)整數(shù)數(shù)組 nums 和一個(gè)目標(biāo)值 target,請(qǐng)你在該數(shù)...

    EddieChan 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<