原创 給程序員的書單推薦

書單推薦 工作這麼多年,雖然平時加班很多,但閒暇時間依然會讀書。在我看來,讀書並實踐是成長的最有效途徑。讀書提升認知,實踐改變行爲,所謂知行合一。細細數來,讀過不少的好書,有技術類的,也有非技術類的。下面推薦一些我認爲值得讀的好書: 1.

原创 Android SDK 開發經驗談

在公司做了兩年多的 SDK 開發,結合自己的所知所學,分享一些 SDK 開發的經驗。 1. SDK 是什麼 相信做 Android 開發的朋友,一定使用過第三方的 SDK,比如推送 SDK、分享 SDK 等。SDK 的全稱是 Softwar

原创 每週 ARTS 第 25 期

1. Algorithm 22. 遞增的三元子序列(中等) 描述: 給定一個未排序的數組,判斷這個數組中是否存在長度爲 3 的遞增子序列。 數學表達式如下: 如果存在這樣的 i, j, k, 且滿足 0 ≤ i < j < k ≤ n-

原创 每週 ARTS 第 27 期

1. Algorithm 搜索二維矩陣 II(中等) 描述: 編寫一個高效的算法來搜索 m x n 矩陣 matrix 中的一個目標值 target。該矩陣具有以下特性: 每行的元素從左到右升序排列。 每列的元素從上到下升序排列。 示

原创 每週 ARTS 第 28 周

1. Algorithm 旋轉數組(簡單) 描述: 給定一個數組,將數組中的元素向右移動 k 個位置,其中 k 是非負數。 儘可能想出更多的解決方案,至少有三種不同的方法可以解決這個問題。 要求使用空間複雜度爲 O(1) 的原地算法。

原创 每週 ARTS 第 26 期

1. Algorithm 判定字符是否唯一(簡單) 描述: 實現一個算法,確定一個字符串 s 的所有字符是否全都不同。 示例: 輸入: s = "leetcode" 輸出: false 輸入: s = "abc" 輸出: true

原创 每週 ARTS 第 33 期

1. Algorithm 路徑總和 III(簡單) 描述: 給定一個二叉樹,它的每個結點都存放着一個整數值。找出路徑和等於給定數值的路徑總數。 路徑不需要從根節點開始,也不需要在葉子節點結束,但是路徑方向必須是向下的(只能從父節點到子節

原创 每週 ARTS 第 31 周

1. Algorithm 環形鏈表 II(中等) 描述: 給定一個鏈表,返回鏈表開始入環的第一個節點。 如果鏈表無環,則返回 null。 爲了表示給定鏈表中的環,我們使用整數 pos 來表示鏈表尾連接到鏈表中的位置(索引從 0 開始)。

原创 每週 ARTS 第 32 周

1. Algorithm 路徑總和(簡單) 描述: 給定一個二叉樹和一個目標和,判斷該樹中是否存在根節點到葉子節點的路徑,這條路徑上所有節點值相加等於目標和。 葉子節點是指沒有子節點的節點。 示例: 給定如下二叉樹,以及目標和 sum

原创 每週 ARTS 第 30 周

1. Algorithm 零錢兌換(中等) 描述: 給定不同面額的硬幣 coins 和一個總金額 amount。編寫一個函數來計算可以湊成總金額所需的最少的硬幣個數。如果沒有任何一種硬幣組合能組成總金額,返回 -1。 你可以認爲每種硬幣

原创 每週 ARTS 第 29 周

1. Algorithm 顛倒二進制位(簡單) 描述: 顛倒給定的 32 位無符號整數的二進制位。 示例: 輸入: 00000010100101000001111010011100 輸出: 0011100101111000001010

原创 每週 ARTS 第 21 期

1. Algorithm 24. 兩兩交換鏈表中的節點(中等) 描述: 給定一個鏈表,兩兩交換其中相鄰的節點,並返回交換後的鏈表。 你不能只是單純的改變節點內部的值,而是需要實際的進行節點交換。 示例: 給定 1->2->3->4, 你

原创 每週 ARTS 第 20 期

1. Algorithm 1116. 打印零與奇偶數(中等) 描述: 有這樣一個類 ZeroEvenOdd,相同的一個 ZeroEvenOdd 類實例將會傳遞給三個不同的線程: 線程 A 將調用 zero(),它只輸出 0 。 線程 B

原创 每週 ARTS 第 19 期

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

原创 每週 ARTS 第 18 期

1. Algorithm 110. 平衡二叉樹(簡單) 描述: 給定一個二叉樹,判斷它是否是高度平衡的二叉樹。 本題中,一棵高度平衡二叉樹定義爲: 一個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過1。 示例: 給定二叉樹 [3,