給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。寫兩個for迴圈,暴力搜尋。你可以假設每種輸入只會對應乙個答案。但是,陣列中同乙個元素不能使用兩遍。
示例:給定 nums = [2, 7, 11, 15], target = 9
因為 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1]
# -*- coding: utf-8 -*-
'''問題簡述:
給定乙個整數陣列nums和乙個target,請在該陣列中找出和為目標值的兩個數,並且
返回這兩個數的下標。
基本思路:
暴力法:寫兩個for迴圈,暴力求解兩個下標。
'''class
solution()
:'''
input: list,target
output: list[index1,index2]
'''deftwosum
(self,nums,target)
:for i in
range
(len
(nums)):
for j in
range
(i+1
,len
(nums)):
if nums[i]
+ nums[j]
== target:
return
[i,j]
return
none
if __name__ ==
'__main__'
: ilist =[3
,2,4
] target =
6 solu = solution(
) ind = solu.twosum(ilist,target)
print
('返回的下標為:\n'
,ind)
遍歷list中元素,用target-當前元素得到差,看差是否存在於後續子list中。若存在,則返回當前下標i和差的下標。
# -*- coding: utf-8 -*-
'''問題簡述:
給定乙個整數陣列nums和乙個target,請在該陣列中找出和為目標值的兩個數,並且
返回這兩個數的下標。
基本思路:
做差法:若差存在於list中,則說明存在兩個數字的和=target。
'''class
solution()
:'''
input: list,target
output: list[index1,index2]
'''deftwosum
(self,nums,target)
:for i in
range
(len
(nums)):
sub = target-nums[i]
if sub in
(nums[i+1:
]):return
[i,i+
1+nums[i+1:
].index(sub)
]return
none
if __name__ ==
'__main__'
: ilist =[2
,7,11
,15] target =
9 solu = solution(
) ind = solu.twosum(ilist,target)
print
('返回的下標為:\n'
,ind)
a. 在方法二中,返回差的下標值得注意下:i+1 + nums[i+1:].index(sub); 這麼寫原因是因為nums[i+1:]想等於乙個新list,裡面元素下標從0開始。因此需要加上前面i+1得到的才是正確的下標。 python實現兩數之和
題目描述 給定乙個整數陣列和乙個目標值,找出陣列中和為目標值的兩個數。你可以假設每個輸入只對應一種答案,且同樣的元素不能被重複利用。示例 給定 nums 2 7,11 15 target 9因為 nums 0 nums 1 2 7 9所以返回 0,1 實現 方法一 暴力求解 class soluti...
python 兩數之和
給定乙個整數陣列 nums和乙個整數目標值 target,請你在該陣列中找出和為目標值的那兩個整數,並返回它們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,陣列中同乙個元素不能使用兩遍。def twosum nums,tatget hashmap for ind,num in enumera...
golang 實現兩數之和
給定乙個整數陣列和乙個目標值,找出陣列中和為目標值的兩個數。你可以假設每個輸入只對應一種答案,且同樣的元素不能被重複利用。示例給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 2 7 9 所以返回 0,1 golang 實現 package main impor...