摘要:給定一個(gè)整數(shù)數(shù)組和一個(gè)目標(biāo)值,請你在該數(shù)組中找出和為目標(biāo)值的那兩個(gè)整數(shù),并返回他們的數(shù)組下標(biāo)。你可以假設(shè)每種輸入只會對應(yīng)一個(gè)答案。但是,你不能重復(fù)利用這個(gè)數(shù)組中同樣的元素。
給定一個(gè)整數(shù)數(shù)組 nums?和一個(gè)目標(biāo)值 target,請你在該數(shù)組中找出和為目標(biāo)值的那?兩個(gè)?整數(shù),并返回他們的數(shù)組下標(biāo)。
你可以假設(shè)每種輸入只會對應(yīng)一個(gè)答案。但是,你不能重復(fù)利用這個(gè)數(shù)組中同樣的元素。
示例:
給定 nums = [2, 7, 11, 15], target = 9 因?yàn)?nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1]
實(shí)現(xiàn)思路:
題目常規(guī)解法是 O(n^2) 的暴力解,分析可以發(fā)現(xiàn),利用好 hashMap 就可以用空間換取時(shí)間,把時(shí)間復(fù)雜度降為 O(n)
我的實(shí)現(xiàn):
/** * @param {number[]} nums * @param {number} target * @return {number[]} */ var twoSum = function(nums, target) { const map = new HashMap() const numsLen = nums.length for (let i = 0; i < numsLen; i++) { const cup = target - nums[i] const index = map.find(cup) if (index !== -1) return [index, i] else map.put(nums[i], i) } }; class HashMap { constructor () { this.map = {} } put (key, value) { this.map[key] = value } find (key) { return key in this.map ? this.map[key] : -1 } }
成績
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/105290.html
摘要:公眾號愛寫給定一個(gè)已按照升序排列的有序數(shù)組,找到兩個(gè)數(shù)使得它們相加之和等于目標(biāo)數(shù)。函數(shù)應(yīng)該返回這兩個(gè)下標(biāo)值和,其中必須小于。示例輸入輸出解釋與之和等于目標(biāo)數(shù)。 公眾號: 愛寫bug(ID:icodebugs) 給定一個(gè)已按照升序排列 的有序數(shù)組,找到兩個(gè)數(shù)使得它們相加之和等于目標(biāo)數(shù)。 函數(shù)應(yīng)該返回這兩個(gè)下標(biāo)值 index1 和 index2,其中 index1 必須小于 index2。...
摘要:公眾號愛寫給定一個(gè)已按照升序排列的有序數(shù)組,找到兩個(gè)數(shù)使得它們相加之和等于目標(biāo)數(shù)。函數(shù)應(yīng)該返回這兩個(gè)下標(biāo)值和,其中必須小于。示例輸入輸出解釋與之和等于目標(biāo)數(shù)。 公眾號: 愛寫bug(ID:icodebugs) 給定一個(gè)已按照升序排列 的有序數(shù)組,找到兩個(gè)數(shù)使得它們相加之和等于目標(biāo)數(shù)。 函數(shù)應(yīng)該返回這兩個(gè)下標(biāo)值 index1 和 index2,其中 index1 必須小于 index2。...
摘要:開坑,以后每周刷一兩道一題目兩數(shù)之和給定一個(gè)整數(shù)數(shù)組和一個(gè)目標(biāo)值,請你在該數(shù)組中找出和為目標(biāo)值的那兩個(gè)整數(shù),并返回他們的數(shù)組下標(biāo)。但是,你不能重復(fù)利用這個(gè)數(shù)組中同樣的元素。 開坑,以后每周刷一兩道LeetCode 一、題目 兩數(shù)之和: 給定一個(gè)整數(shù)數(shù)組 nums 和一個(gè)目標(biāo)值 target,請你在該數(shù)組中找出和為目標(biāo)值的那 兩個(gè) 整數(shù),并返回他們的數(shù)組下標(biāo)。你可以假設(shè)每種輸入只會對應(yīng)...
摘要:給定表,存在函數(shù),對任意給定的關(guān)鍵字值,代入函數(shù)后若能得到包含該關(guān)鍵字的記錄在表中的地址,則稱表為哈希表,函數(shù)為哈希函數(shù)。而中的對象就是基于哈希表結(jié)構(gòu),所以我們構(gòu)造一個(gè)對象即可,是當(dāng)前遍歷到的值,是其與目標(biāo)值的差。 大部分玩前端的小伙伴,在算法上都相對要薄弱些,畢竟調(diào)樣式、調(diào)兼容就夠掉頭發(fā)的了,哪還有多余的頭發(fā)再去折騰。 確實(shí)在前端中需要使用到算法的地方是比較少,但若要往高級方向發(fā)展,...
摘要:兩數(shù)之和給定一個(gè)整數(shù)數(shù)組和一個(gè)目標(biāo)值,找出數(shù)組中和為目標(biāo)值的兩個(gè)數(shù)。你可以假設(shè)每個(gè)輸入只對應(yīng)一種答案,且同樣的元素不能被重復(fù)利用。實(shí)例給定因?yàn)樗苑祷卮鸢竻⒖紙?zhí)行 LeetCode1.兩數(shù)之和JavaScript 給定一個(gè)整數(shù)數(shù)組和一個(gè)目標(biāo)值,找出數(shù)組中和為目標(biāo)值的兩個(gè)數(shù)。你可以假設(shè)每個(gè)輸入只對應(yīng)一種答案,且同樣的元素不能被重復(fù)利用。實(shí)例: 給定 nums = [2, 7, 11, 1...
摘要:題目描述兩數(shù)之和給定一個(gè)整數(shù)數(shù)組和一個(gè)目標(biāo)值,找出數(shù)組中和為目標(biāo)值的兩個(gè)數(shù)。你可以假設(shè)每個(gè)輸入只對應(yīng)一種答案,且同樣的元素不能被重復(fù)利用。示例給定因?yàn)樗苑祷厮悸冯p重循環(huán),遍歷數(shù)組實(shí)現(xiàn) 題目描述 兩數(shù)之和給定一個(gè)整數(shù)數(shù)組和一個(gè)目標(biāo)值,找出數(shù)組中和為目標(biāo)值的兩個(gè)數(shù)。 你可以假設(shè)每個(gè)輸入只對應(yīng)一種答案,且同樣的元素不能被重復(fù)利用。 示例: 給定 nums = [2, 7, 11, 15],...
閱讀 3251·2021-11-15 11:37
閱讀 2465·2021-09-29 09:48
閱讀 3829·2021-09-22 15:55
閱讀 3026·2021-09-22 10:02
閱讀 2650·2021-08-25 09:40
閱讀 3241·2021-08-03 14:03
閱讀 1709·2019-08-29 13:11
閱讀 1581·2019-08-29 12:49