Algorithm做算法題为居,Review點評英文文章枯途,Tip總結技術技巧忌怎,Share做技術分享。每周打卡一次酪夷,這就是ARTS打卡榴啸。
1. 做算法題
Leetcode算法題654. 最大二叉樹
題目描述:給定一個不含重復元素的整數(shù)數(shù)組。一個以此數(shù)組構建的最大二叉樹定義如下:
二叉樹的根是數(shù)組中的最大元素晚岭。
左子樹是通過數(shù)組中最大值左邊部分構造出的最大二叉樹插掂。
右子樹是通過數(shù)組中最大值右邊部分構造出的最大二叉樹。
通過給定的數(shù)組構建最大二叉樹,并且輸出這個樹的根節(jié)點辅甥。
示例:
輸入:[3,2,1,6,0,5]
輸出:返回下面這棵樹的根節(jié)點:
? 6
/ \
3 5
\ /
2 0
? \
? 1
解題思路:用遞歸解決問題酝润,找出當前數(shù)組(列表)最大的值,列表左邊遞歸建樹璃弄,右邊也遞歸建樹要销。邊界條件是列表為空就返回None。
解題代碼:
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def constructMaximumBinaryTree(self, nums: List[int]) -> TreeNode:
if len(nums) == 0: return None
max_index = nums.index(max(nums))
root = TreeNode(nums[max_index])
root.left = self.constructMaximumBinaryTree(nums[0:max_index])
root.right = self.constructMaximumBinaryTree(nums[max_index+1:])
return root
2. 點評英文文章
文章Why is serverless important ?中介紹了無服務器架構的概念夏块、優(yōu)點疏咐、缺點,無服務架構越來越受到重視脐供,原因在于企業(yè)可以快速迭代試錯浑塞,而且成本極低。但是需要采用新的技術架構政己,甚至變化組織架構酌壕,不適合體量大的組織。
3. 技術技巧
搜索某個網(wǎng)站中的內(nèi)容歇由,如果網(wǎng)站沒有提供搜索功能卵牍,可以在搜索引擎中使用site
關鍵字,如site:youtube.com 蛋炒飯
沦泌。
如果想給網(wǎng)站添加一個搜索框糊昙,方便用戶檢索信息,可以參考此文谢谦。
4. 技術分享
上周介紹了幾個學習Linux的游戲释牺,嘗試了一下,對于英文功底很好的同學可以去玩玩回挽,如果英語水平不夠没咙,也別勉強,否則查Linux命令變成了查英文字典厅各。自己安裝個Linux環(huán)境镜撩,用起來预柒,才能慢慢學會Linux队塘,就像學英語一樣。
我自己電腦是Win10+Ubuntu雙系統(tǒng)宜鸯,每次打開Ubuntu都很慢憔古。用top
命令看了看跑的進程,原來以前跑的docker淋袖、mysql都在后臺運行著鸿市。用ps -ef |grep mysql
命令查找到mysql進程號,kill -9 XXX
命令將其殺掉。再用ps命令復查一下焰情。mysql換了個進程號還在運行陌凳。原因是有守護進程重啟了mysql,不玩貓抓老鼠的游戲了内舟,直接用service mysql stop
命令關閉mysql合敦。
這個過程用到了幾個linux命令,而且解決了實際問題验游,這么學習雖然要反復查找解決辦法充岛,就像學英語總是磕磕巴巴一樣,但能讓你掌握耕蝉。