1.兩數之和
給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,陣列中同乙個元素不能使用兩遍。
示例: 給定 nums = [2, 7, 11, 15], target = 9 因為 nums[0] + nums[1] = 2 + 7思路:a+b=target => target-a=b= 9 所以 返回 [0, 1]
第一次嘗試
class
solution
(object):
deftwosum
(self, nums, target)
: l =
for i,n in
enumerate
(nums)
: r = target - n
if r in nums:
return l
# 沒有考慮乙個數不能使用兩遍
參考
class
solution
:def
twosum
(self,nums,target)
: n =
len(nums)
# 獲取nums的長度,是4
for x in
range
(n):
# 外層迴圈先取出下標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
sum/solution/wo-shi-pythoncai-ji-liang-shu-zhi-he-de-3ge-jie-fa/
第二次嘗試
class
solution
(object):
deftwosum
(self, nums, target)
:for x,n in
enumerate
(nums)
: r = target - n
if r in nums:
y = nums.index(r)
if x == y:
continue
else
:return x,y
break
總結:
a+b=target => target-a=b
enumerate() 獲取下標和值
index() 獲取下標
排除同乙個數使用兩次的情況
感覺還可以改進,想不出來了 =,=
力扣日常練習
給定乙個字串,驗證它是否是回文串,只考慮字母和數字字元,可以忽略字母的大小寫。說明 本題中,我們將空字串定義為有效的回文串。解題 根據題目需求首先過濾掉非字母和數字的字元,緊接著通過雙指標首尾遍歷字串,判斷是否回文即可。只需五行 即可。class solution 設計乙個支援 push,pop,t...
python可以做力扣的題嗎 力扣題目練習一
10.正規表示式匹配 給你乙個字串 s 和乙個字元規律 p,請你來實現乙個支援 和 的正規表示式匹配。匹配任意單個字元 匹配零個或多個前面的那乙個元素 所謂匹配,是要涵蓋 整個 字串 s的,而不是部分字串。說明 s 可能為空,且只包含從 a z 的小寫字母。p 可能為空,且只包含從 a z 的小寫字...
力扣演算法題
給定乙個整數陣列 nums 和乙個整數目標值 target,請你在該陣列中找出 和為目標值 的那 兩個 整數,並返回它們的陣列下標。但是,陣列中同乙個元素不能使用兩遍。思路一 暴力列舉 將陣列中的每個元素都拿來與後面的元素逐一相加,然後與目標值作比較,如果正確則直接返回下標值。那麼,就會有最壞的情況...