程式設計練習系列 twoSum實現

2021-10-11 00:22:34 字數 1496 閱讀 7894

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