題解
dicts =
for index, value in
enumerate
(nums)
: temp = target - value
if temp in dicts:
return
[dicts[temp]
, index]
dicts[value]
= index
# 也可以直接使用陣列遍歷,效果差不多
enumerate() 函式用於將乙個可遍歷的資料物件(如列表、元組或字串)組合為乙個索引序列,同時列出資料和資料下標,一般用在 for 迴圈當中
題解
prenode = listnode(0)
lastnode = prenode
val =
0while l1 or l2 or val:
val,cur =
divmod
(val+
(l1.val if l1 else0)
+(l2.val if l2 else0)
,10) lastnode.
next
= listnode(cur)
lastnode = lastnode.
next
l1 = l1.
next
if l1 else
none
l2 = l2.
next
if l2 else
none
return prenode.
next
python divmod() 函式把除數和餘數運算結果結合起來,返回乙個包含商和餘數的元組(a // b, a % b)。
面試中該題出現次數:
題解
if s is
none
orlen
(s)==0:
return0;
form =
0to =
1maxlength =
1while to<
len(s)
: site = s[form:to]
.find(s[to]
)if site !=-1
: length = to-form
if length > maxlength:
maxlength = length
form = form+site+
1 to +=
1if to-form > maxlength:
maxlength = to-form
return maxlength
參考部落格:
面試中該題出現次數:
題解
nums1.extend(nums2)
nums1.sort(
)# 有點作弊
half =
len(nums1)//2
return
(nums1[half]
+ nums1[
~half])/
2
中位數演算法參考部落格:
python中list sort的實現原理:
中位數是按順序排列的一組資料中居於中間位置的數,如果觀察值有偶數個,通常取最中間的兩個數值的平均數作為中位數。
面試中該題出現次數:
# 每個字元之間插入 #
ss =
'$#'
+'#'
.join(
[x for x in s])+
'#`'
p =[1]
*len
(ss)
# r的初始化
center =
0mx =
0# mx 則為 center + r[center],也就是這個子串的右邊界
max_str =
''for i in
range(1
,len
(p)-1)
:if i < mx:
j =2* center - i # i 關於 center 的對稱點
p[i]
=min
(p[j]
,mx-i)
# 嘗試繼續向兩邊擴充套件,更新 p[i]
while ss[i - p[i]
]== ss[i + p[i]]:
# 不必判斷是否溢位,因為首位均有特殊字元,肯定會退出
p[i]+=1
# 更新中心
if i + p[i]-1
> mx:
mx = i + p[i]-1
center = i
# 更新最長串if2
* p[i]-1
>
len(max_str)
: max_str = ss[i - p[i]+1
: i + p[i]
]return max_str.replace(
'#',
'')參考部落格:
回文串(palindromic string)是指這個字串無論從左讀還是從右讀,所讀的順序是一樣的;簡而言之,回文串是左右對稱的。
LeetCode 刷題記錄(1 5題)
1 兩數之和 題目鏈結 class solution 一次雜湊法 deftwosum self,nums,target type nums list int type target int rtype list int m for i in range len nums minus target n...
leetcode刷題記錄
我覺得每天來兩道,練習練習,再看看人家是怎麼優化的。1.給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。c 暴力求解,204ms,9.1m class solution for index,num in enumerate ...
LeetCode刷題記錄
動態規劃和貪心演算法的異同點 class solution throw newruntimeexception 時間複雜度 o n 2 對於每個元素,我們試圖通過遍歷陣列的其餘部分來尋找它所對應的目標元素,這將耗費 o n o n 的時間。因此時間複雜度為 o n 2 需要一種方法,尋找符合要求的元...