原创 算法訓練: Construct Binary Tree from Preorder and Inorder Traversal

題目鏈接: https://leetcode.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal/#/descriptionz 題目描述: 給定一棵

原创 算法訓練: Restore IP Addresses

題目鏈接:https://leetcode.com/problems/restore-ip-addresses/?tab=Description 題目描述:        給一個只包含數字的字符串,要求返回所有合法的IP地址。      

原创 算法訓練:Binary Tree Level Order Traversal

題目鏈接: https://leetcode.com/problems/binary-tree-level-order-traversal/#/description 題目描述:           給定一棵二叉樹,要求返回每層節點的值

原创 算法訓練:Path Sum II

題目鏈接:https://leetcode.com/problems/path-sum-ii/#/description 題目描述:      給定一個二叉樹和一個總和,找到所有根到葉子的路徑,每條路徑的總和等於給定的和。      例如

原创 算法訓練:Remove K Digits

題目鏈接:https://leetcode.com/problems/remove-k-digits/#/description 題目描述:       給定一個包含非負整數的字符串,移除其中的k個數,使得剩下的數字是最小的。   

原创 算法練習:Add Two Numbers

題目鏈接:https://leetcode.com/problems/add-two-numbers/?tab=Description 問題描述: 給定兩個非空鏈表,鏈表中的值均爲非負數,數字以相反的順序存儲,每個節點包含一個位

原创 算法訓練: Kth Largest Element in an Array

題目鏈接:https://leetcode.com/problems/kth-largest-element-in-an-array/?tab=Description 問題描述: 查找一個無序數組中的第K個最大的數。例如:[3,

原创 算法訓練:Minimum Path Sum

題目鏈接:https://leetcode.com/problems/minimum-path-sum/#/description 題目描述:         給定一個全爲正整數的 m X n 的矩陣, 取一條從左上爲起點, 走到右下

原创 算法訓練:String to Integer (atoi)

題目鏈接:https://leetcode.com/problems/string-to-integer-atoi/?tab=Description 問題描述: 自己實現一個atio函數(字符串轉爲整型)。 解題思路:

原创 《代碼整潔之道》(13)併發編程

“對象是過程的抽象,線程時調度的抽象。”——James O Coplien爲什麼要併發?   併發是一種解耦策略。它幫助我們把做什麼(目的)和何時(時機)做分解開。解耦的目的和時機能明顯地改進應用程序的吞吐量和結構。從結構角度來看,應用程

原创 算法練習:Maximal Square

題目鏈接:https://leetcode.com/problems/maximal-square/#/description 題目描述:     給定一個只含'0'和'1'的二維矩陣,要求找出其中只包含1的最大的正方形並返回其面積。

原创 算法訓練:Binary Tree Maximum Path Sum

題目鏈接:https://leetcode.com/problems/binary-tree-maximum-path-sum/#/description 題目描述:       給定一棵二叉樹,求其最大路徑和。 這裏的路徑可以是從任何

原创 《代碼整潔之道》(9)單元測試

TDD三定律:  定律一:在編寫不能通過的單元測試前,不可編寫生產代碼。  定律二:只可編寫放好無法通過的單元測試,不能編譯也不算通過。  定律三:只可編寫剛好足以通過當前失敗測試的生產代碼。保持測試整潔:  (1)髒測試=沒測試  (2

原创 《代碼整潔之道》(1)整潔代碼

要有代碼       代碼呈現了需求的細節,永遠無法被拋棄。糟糕的代碼       勒布朗(LeBlanc)法則:稍後等於永不(Later equals never)。不要說回頭再清理,最好一次性就寫好。混亂的代價       隨着混亂的

原创 《代碼整潔之道》(11)系統

“複雜要人命。它小莫開發者的生命,讓產品難以規劃、構建和測試。”—— Ray Ozzie  整潔的代碼可以幫助開發團隊在較低層的抽象層級上達成這一目標。  本節是關於如何保持較高層級——系統層級——上保持整潔。將系統的構造和使用分開: