原创 刷題計劃——深度優先搜索DFS(一)

面試題13. 機器人的運動範圍(中等) 題目: 地上有一個m行n列的方格,從座標 [0,0] 到座標 [m-1,n-1] 。一個機器人從座標 [0, 0] 的格子開始移動,它每次可以向左、右、上、下移動一格(不能移動到方格外),也

原创 刷題計劃——棧算法(二)

921.使括號有效的最少添加(簡單) 題目: 給定一個由 ‘(’ 和 ‘)’ 括號組成的字符串 S,我們需要添加最少的括號( ‘(’ 或是 ‘)’,可以在任何位置),以使得到的括號字符串有效。 從形式上講,只有滿足下面幾點之一,括

原创 刷題計劃——動態規劃dynamic programming(二)

1339.分裂二叉樹的最大乘積 題目: 給你一棵二叉樹,它的根爲 root 。請你刪除 1 條邊,使二叉樹分裂成兩棵子樹,且它們子樹和的乘積儘可能大。 由於答案可能會很大,請你將結果對 10^9 + 7 取模後再返回。 示例 1

原创 刷題計劃——棧算法(三)

150. 逆波蘭表達式求值(中等) 題目: 根據逆波蘭表示法,求表達式的值。 有效的運算符包括 +, -, *, / 。每個運算對象可以是整數,也可以是另一個逆波蘭表達式。 說明: 整數除法只保留整數部分; 給定逆波蘭表達式總是

原创 刷題計劃——動態規劃dynamic programming(三)

96. 不同的二叉搜索樹(中等) 題目: 給定一個整數 n,求以 1 … n 爲節點組成的二叉搜索樹有多少種? 示例: 輸入: 3 輸出: 5 解釋: 給定 n = 3, 一共有 5 種不同結構的二叉搜索樹: 1

原创 刷題計劃——動態規劃dynamic programming(一)

120.三角形最小路徑和(中等) 題目: 給定一個三角形,找出自頂向下的最小路徑和。每一步只能移動到下一行中相鄰的結點上。 例如,給定三角形: [ [2], [3,4], [6,5,7], [4,1,

原创 刷題計劃——雙指針算法(一)

雙指針算法(一) leetcode上的一些能用雙指針辦法解決的算法題題解 86.分割鏈表(中等) 題目: 給定一個鏈表和一個特定值 x,對鏈表進行分隔,使得所有小於 x 的節點都在大於或等於 x 的節點之前。 你應當保留兩個分區中

原创 刷題計劃——動態規劃dynamic programming(四)

322. 零錢兌換(中等) 題目: 給定不同面額的硬幣 coins 和一個總金額 amount。編寫一個函數來計算可以湊成總金額所需的最少的硬幣個數。如果沒有任何一種硬幣組合能組成總金額,返回 -1。 示例 1: 輸入: coi

原创 MuteLock, MuteLockGuard的C++實現

MuteLock 使用類來封裝該功能時需要注意,該類不支持拷貝構造和賦值。 class MutexLock: boost::noncopyable{ public: // Initialize mutex_ MutexLock

原创 刷題計劃——回溯法(一)

47. 全排列(中等) 題目: 給定一個沒有重複數字的序列,返回其所有可能的全排列。 示例: 輸入: [1,2,3] 輸出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,

原创 刷題計劃——棧算法(一)

232.用棧實現隊列(簡單) 題目: 使用棧實現隊列的下列操作: push(x) – 將一個元素放入隊列的尾部。 pop() – 從隊列首部移除元素。 peek() – 返回隊列首部的元素。 empty() – 返回隊列是否爲空

原创 (進階)C函數調用

staic 變量使用的相關問題 筆者最近看《C與指針》這本書,發現了許多從前學習時沒有遇見的有趣問題。 最讓筆者震驚的是第五章5.8習題中第二題,讓筆者又從頭認真學習了一遍C語言的 static 變量。 代碼 int

原创 二叉排序樹基本性質詳解

線索二叉樹 在學習了基本的二叉樹操作之後,數據結構就來到了圖結構的學習,以及相關的基本算法。 完成之後,就到了二叉樹的進階學習,有序二叉樹,平衡二叉樹,哈夫曼樹,到後面的B樹,B+樹,B*樹。 今天,就先簡單地說一瞎有序二叉樹

原创 刷題計劃——位算法(一)

461. 漢明距離(簡單) 題目: 兩個整數之間的漢明距離指的是這兩個數字對應二進制位不同的位置的數目。 給出兩個整數 x 和 y,計算它們之間的漢明距離。 注意: 0 ≤ x, y < 231 示例: 輸入: x = 1, y

原创 刷題計劃——深度優先搜索(二)

面試題36. 二叉搜索樹與雙向鏈表(中等) 題目: 輸入一棵二叉搜索樹,將該二叉搜索樹轉換成一個排序的循環雙向鏈表。要求不能創建任何新的節點,只能調整樹中節點指針的指向。 爲了讓您更好地理解問題,以下面的二叉搜索樹爲例: 我們希