【前言】堅持日更leetcode刷題系列
不積跬步,無以至千里;不積小流,無以成江海。願與諸君共勉!
【題目】1.兩數之和
題目描述:給定乙個整數陣列nums
和乙個目標值target
,請你在該陣列中找出和為目標值的那兩個整數
,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。
示例:
給定 nums = [2, 7, 11, 15], target = 9
因為 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
思路一:通過兩層for迴圈,因為不能使用陣列中同樣的元素,第一層從頭遍歷到尾部元素減一,第二層遍歷從第一層的 i 值遍歷到尾。**如下:
class
solution
(object):
deftwosum
(self, nums, target)
:"""
:type nums: list[int]
:type target: int
:rtype: list[int]
"""index =
for i in
range
(len
(nums)-1
):for j in
range
(i,len
(nums)):
if(i
+nums[j]
==target)
:return index
執行結果:
思路二:通過字典作為儲存工具,利用雜湊表的方式進行求解。**如下:
class
solution
(object):
deftwosum
(self, nums, target)
:"""
:type nums: list[int]
:type target: int
:rtype: list[int]
"""hashmap =
#因為我們想得到index,所以我們將nums作為鍵
for index,num in
enumerate
(nums)
: another_num = target - num
if(another_num in hashmap)
:return
[hashmap[another_num]
,index]
#注意return時兩個index的順序
else
: hashmap[num]
= index
return
none
python enumerate函式
python 字典
演算法動畫詳解,推薦**《動畫**演算法:兩數之和》
Leetcode每日一題 兩數相加
給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。剛拿到題目的時候沒有仔細思考,先想的是寫乙...
leetcode每日一題 2 兩數相加
題目 給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 2 4 3 5 6 4 ...
LeetCode每日一題 回文數
前言 堅持日更leetcode刷題系列 不積跬步,無以至千里 不積小流,無以成江海。願與諸君共勉!題目 9.回文數 判斷乙個整數是否是回文數。回文數是指正序 從左向右 和倒序 從右向左 讀都是一樣的整數。示例 示例 1 輸入 121 輸出 true 示例 2 輸入 121 輸出 false 解釋 從...