給定乙個整數陣列 nums 和乙個目標值 target,在該陣列中找出和為目標值的那兩個整數,並返回他們的陣列下標。
例子:給定 nums = [2, 7, 11, 15], target = 9
因為 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
思路:內外迴圈,取出乙個數,與列表剩餘數進行判定。
from typing import list
class
solution
:def
twosum
(self, nums: list[
int]
, target:
int)
-> list[
int]
:for i in
range
(nums.__len__())
:#外迴圈,遍歷列表
for j in
range
(i+1
, nums.__len__())
:#內迴圈,遍歷列表第i個之後的值
if nums[i]
+ nums[j]
== target:
#判斷兩數之和是否等於目標數
return
[i, j]
#滿足,以列表形式返回結果
if __name__ ==
'__main__'
: nums =[3
,2,4
] target =
6 myfun = solution(
) dst = myfun.twosum(nums, target)
print
(dst)
思路:初始化乙個字典,遍歷列表,判斷字典中是否含有滿足target-num[i]的鍵,若無,將值與索引(按鍵值)存入字典中;若有,輸出target-num[i]鍵的值與當前id。
class
solution
:def
twosum
(self, nums: list[
int]
, target:
int)
-> list[
int]
:dict
=#初始化字典
for i in
range
(nums.__len__())
:#遍歷列表
if target - nums[i]
indict
:#檢視字典中是否含有與 target-num[i]的匹配項
return
[dict
[target - nums[i]
], i]
#存在,則找到和為目標值的兩個數
dict
[nums[i]
]= i #不存在,將當前值與索引按照鍵值儲存到字典中
leetcode系列 twosum問題
題目描述 輸入 乙個陣列 nums 乙個數 target 輸出 從陣列中取兩個數使得兩數之和等於target,輸出這兩個數的下標 1,一開始的想法是,使用兩重迴圈直接一一遍歷,窮舉出這兩個數,並得到他們的下標 public static int twosum1 int nums,int target...
leetcode程式設計筆記 一 two sum
1.題目 輸入乙個陣列nums,根據所給的target 目標數 返回兩個元素的索引x y,假定 nums x nums y target且x,y唯一 2.演算法分析 得到目標元素需要將每個元素和其他元素相加計算結果和,通常有如下幾種方案 演算法複雜度 o nl ogn 哈西搜尋 演算法複雜度 o n...
LeetCode長征系列 1Two Sum兩數之和
題目的啟示 給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 num...