leetcode刷題 兩數之和(1)

2021-10-24 22:03:09 字數 1285 閱讀 7226

本人成績差、基礎差、數學差、無演算法、特此建立此文件以自勉學習python,

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

你可以假設每種輸入只會對應乙個答案。但是,陣列中同乙個元素不能使用兩遍。

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

因為 nums[0] + nums[1] = 2 + 7 = 9

所以返回 [0, 1]

def twosum(self, nums, target):

n=len(nums)

for i in range(n):

for j in range(i+1,n):

if(nums[i]+nums[j]==target):

return[i,j]

return

暴力美學好呀,就是執行時間和記憶體消耗不太美好

#雙指標法

class solution:

def twosum(self, nums, target):

temp=copy.copy(nums)

temp.sort()

i=0j=len(nums)-1

while itarget:

j=j-1

elif (temp[i]+temp[j])注意⚠️把nums複製給temp時不等直接用等號

所謂雜湊表法呢,就是說運用字典以num[i]為鍵、target-nums[i]為值,構建乙個雜湊表

遍歷nums[i]時,看target-nums[i]是否存在hash表中即可

#雜湊表法

class solution:

def twosum(self, nums, target):

hashset={}

for i in range(len(nums)):

if hashset.get(target-nums[i]) is not none :

return [hashset.get(target-nums[i]),i]

hashset[nums[i]]=i

leetcode刷題 1 兩數之和

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

leetcode刷題1 兩數之和

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

LeetCode 刷題 1 兩數之和

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