1.兩數之和 Two Sum
題目描述
給定一個整數陣列 nums 和一個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應一個答案。但是,陣列中同一個元素不能使用兩遍。
示例:
給定 nums = [2, 7, 11, 15], target = 9
因為 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
來源:力扣(LeetCode) 連結
第一次題解
第一次題解用了兩層迴圈遍歷,時間複雜度為 O ( n 2 ) O(n^2) O(n2)。執行用時:400 ms, 在所有 Python3 提交中擊敗了36.74%的使用者;記憶體消耗:14.8 MB, 在所有 Python3 提交中擊敗了18.87%的使用者。還是挺慢的。
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
l = []
for i in range(len(nums)):
for j in range(i + 1, len(nums)):
if nums[i] + nums[j] == target:
l.append(i)
l.append(j)
return l
最優題解
看了別人的答案,最優時間複雜度是 O ( n ) O(n) O(n),用的字典。執行用時:32 ms, 在所有 Python3 提交中擊敗了98.10%的使用者;記憶體消耗:14.9 MB, 在所有 Python3 提交中擊敗了18.00%的使用者。
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
hashmap = {}
for index, num in enumerate(nums):
another_num = target - num
if another_num in hashmap:
return [hashmap[another_num], index]
hashmap[num] = index
return None
相關文章
- LeetCode: Two sum(兩數之和)LeetCode
- python leetcode 之兩數之和(two sum)PythonLeetCode
- 力扣.1 兩數之和 N 種解法 two-sum力扣
- LeetCode 之 JavaScript 解答第一題 —— 兩數之和(Two Sum)LeetCodeJavaScript
- 1. 兩數之和
- LeetCode 1. 兩數之和LeetCode
- 001,Two Sum(求兩數的和)
- [LeetCode 刷題] 1. 兩數之和LeetCode
- LeetCode-Python 1. 兩數之和LeetCodePython
- 力扣 170. 兩數之和 III - 資料結構設計 two-sum III力扣資料結構
- 力扣 653. 兩數之和 IV 二叉樹/binary-tree two-sum IV力扣二叉樹
- [演算法] LeetCode 1.兩數之和演算法LeetCode
- Fifth. LeetCode 2:Add Two Numbers 兩數之和LeetCode
- LeetCode每日一題 (32)1. 兩數之和LeetCode每日一題
- 001-ksum 求符合條件的 k 個數 1. Two Sum/15. 3Sum/18. 4Sum/
- 【新手小白刷leetcode記錄貼】 1.兩數之和LeetCode
- Sum of Square Numbers 平方數之和
- leetcode 解題 1.兩數之和-python3 兩種解法 @ 官方LeetCodePython
- 每日一道演算法題:1.兩數之和演算法
- 兩數之和
- 兩數之和,三數之和,最接近的三數之和,四數之和
- LeetCode | 1 Two SumLeetCode
- Leetcode 1 two sumLeetCode
- LeetCode - 兩數之和LeetCode
- 兩數之和(TwoSum)
- LeetCode:兩數之和LeetCode
- LeetCode-1 Two SumLeetCode
- python: leetcode - 1 Two SumPythonLeetCode
- [LeetCode]1.Two SumLeetCode
- LeetCode-兩數之和LeetCode
- leetcode #1 兩數之和LeetCode
- LeetCode 1 兩數之和LeetCode
- LeetCode之兩數之和LeetCode
- leetcode 371. Sum of Two IntegersLeetCode
- 兩數之和詳細解答
- 力扣之兩數之和力扣
- leetcode-0001 兩數之和LeetCode
- 演算法-兩數之和演算法