給你兩個有序整數陣列 nums1 和 nums2,請你將 nums2 合併到 nums1 中,使 nums1 成為乙個有序陣列。【思路】初始化 nums1 和 nums2 的元素數量分別為 m 和 n 。你可以假設 nums1 的空間大小等於 m + n,這樣它就有足夠的空間儲存來自 nums2 的元素。
① 合併nums1和nums2 直接返回排序後的列表;
② 雙指標遍歷,在nums1上插入nums2的值
【實現】
class
solution
:def
merge
(self, nums1: list[
int]
, m:
int, nums2: list[
int]
, n:
int)
->
none
:"""
do not return anything, modify nums1 in-place instead.
"""iflen
(nums2)==0
:return nums1
nums1[m:]=
[float
('inf')]
*n j, tmp =0,
0while j < m+n and
len(nums2)
>0:
if nums2[0]
<= nums1[j]
: nums1.insert(tmp, nums2[0]
)del nums2[0]
nums1.pop(
) j +=
1 tmp +=
1return
給定乙個二叉樹,找出其最大深度。【思路】
dfs思想,二叉樹的最大深度 = 1+max(左子樹的最大深度,右子樹的最大深度)
【實現】
# definition for a binary tree node.
# class treenode:
# def __init__(self, val=0, left=none, right=none):
# self.val = val
# self.left = left
# self.right = right
class
solution
:def
maxdepth
(self, root: treenode)
->
int:
ifnot root:
return
0return1+
max(self.maxdepth(root.left)
, self.maxdepth(root.right)
)
Leetcode騰訊精選練習2
原題 兩個大小為 m 和 n 的排序陣列 nums1 和 nums2 請找出兩個排序陣列的中位數並且總的執行時間複雜度為 o log m n 示例 1 nums1 1,3 nums2 2 中位數是 2.0 示例 2 nums1 1,2 nums2 3,4 中位數是 2 3 2 2.5 看到這題目自然...
Leetcode騰訊精選練習04
原題 leetcode7 給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。示例 1 輸入 123 輸出 321 示例 2 輸入 123 輸出 321 示例 3 輸入 120 輸出 21 注意 假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 231,231 1...
Leetcode騰訊精選練習05
請你來實現乙個atoi函式,使其能將字串轉換成整數。首先,該函式會根據需要丟棄無用的開頭空格字元,直到尋找到第乙個非空格的字元為止。當我們尋找到的第乙個非空字元為正或者負號時,則將該符號與之後面盡可能多的連續數字組合起來,作為該整數的正負號 假如第乙個非空字元是數字,則直接將其與之後連續的數字字元組...