leetcode刷題之兩數之和(go實現)

2021-09-24 22:02:03 字數 787 閱讀 4649

最近打算把leetcode的演算法題刷一下,為了防止自己忘記,特意寫下來解題的方法,每道題都是認真去做,然後想能不能有更優解。如果各位有更好的解法,可以交流下,謝謝。題目來自於leetcode()。

1、給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。

你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。

示例:給定 nums = [2, 7, 11, 15], target = 9。因為 nums[0] + nums[1] = 2 + 7 = 9,所以返回 [0, 1]

解法一:暴力法

直接套用迴圈找出相應的兩個數,返回相應的下標

**如下:

解法二:map(hash)法(空間換時間的做法)

此方法執行時間可以達到4ms,使用記憶體空間為3.7m(leetcode執行結果);

將target和陣列各個元素分別做減法操作,將得出的值存入map(map本身具有唯一性,這裡不考慮多個相同值的情況)中,再進行一次迴圈,看相應的元素是否在map中,如在,則返回相應的下標;反之,則無

**如下:

leetCode刷題 兩數之和

兩數之和 給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums...

leetCode刷題 兩數之和

兩數之和 給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums...

LeetCode刷題 兩數之和

給定乙個整數陣列nums和乙個整數目標值 target,請你在該陣列中找出和為目標值的那兩個整數,並返回它們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,陣列中同乙個元素不能使用兩遍。你可以按任意順序返回答案。示例 1 輸入 nums 2,7,11,15 target 9 輸出 0,1 解釋...