題目:
給定乙個整數陣列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 ...