演算法六 找到兩數之和為固定值的下標

2021-10-06 10:53:14 字數 1060 閱讀 7465

題目:

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

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

方法一:

class solution:

def twosum(self,nums,target):

n = len(nums) # 獲取nums的長度,是4

for x in range(n-1): # 外層迴圈先取出下標0,對應著陣列裡的第乙個數字

for y in range(x+1,n): # 內層迴圈取出下標1,對應著陣列裡的第二個數字

if nums[x] + nums[y] == target: # 如果第乙個數字+第二個數字=target

return x,y # 上面的判斷是對的話,那麼就返回下標

break # 並停止程式

else: # 如果上面的條件不滿足的話,內層for迴圈就會繼續取出下標2進行判斷...如果都不滿足,那麼外層for迴圈就會取出下標1...依次類推

continue

方法二:乙個for迴圈

class solution:

def twosum(self,nums,target):

n = len(nums)

for x in range(n):

a = target - nums[x]

if a in nums: # 判斷a有沒有在nums陣列裡

y = nums.index(a) # 有的話,那麼用index獲取到該數字的下標

if x == y:

continue # 同樣的數字不能重複用,所以這裡如果是一樣的數字,那麼就不滿足條件,跳過

else: # 否則就返回結果

return x,y

break

else:

continue # 上面的條件都不滿足就跳過,進行下一次迴圈

演算法 兩數之和,三數之和

給定乙個整數陣列和乙個目標值,找出陣列中和為目標值的兩個數。你可以假設每個輸入只對應一種答案,且同樣的元素不能被重複利用。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 2 7 9 所以返回 0,1 leetcode 思路 兩層for迴圈時間複雜度是o ...

演算法 兩數之和

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

演算法 兩數之和

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