原创 《挑戰程序設計》之鋪磚問題

《挑戰程序設計》之鋪磚問題 解答 從左上角進行處理,dp[now][S]表示處理nownownow節點(i,j)(i,j)(i,j)的時候灰色區域的狀態爲S,dp[next][S‘]表示處理完nownownow節點(i,j)(

原创 Thrift教程

PRC:遠程服務調用,也是一種網絡協議,使用TCP連接實現,類似HTTP。 Thrift是一種RPC框架,開發人員通過編寫IDL定義兩個服務之間的接口,然後通過Thrift自動生成代碼(包括網絡服務端和客戶端,通信對象),即開

原创 Java 生產者消費者問題

1 一個生產者一個消費者 生產者和消費者同步獲取存放產品的隊列 生產者在生產後通知消費者,在隊列滿時等待消費者取出 消費者在取出後通知生產者,在隊列爲空時等待生產者放入 場景類 import java.util.LinkedLis

原创 LeetCode 136 只出現一次的數字

給定一個非空整數數組,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。 說明: 你的算法應該具有線性時間複雜度。 你可以不使用額外空間來實現嗎? 示例 1: 輸入: [2,2,1] 輸出: 1 示例

原创 LeetCode 2 兩數相加

給出兩個 非空 的鏈表用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式存儲的,並且它們的每個節點只能存儲 一位 數字。 如果,我們將這兩個數相加起來,則會返回一個新的鏈表來表示它們的和。 您可以假設除了數字 0 之外,

原创 LeetCode 3 無重複字符的最長子串

給定一個字符串,請你找出其中不含有重複字符的 最長子串 的長度。 示例 1: 輸入: "abcabcbb" 輸出: 3 解釋: 因爲無重複字符的最長子串是 "abc",所以其長度爲 3。 示例 2: 輸入: "bbbbb" 輸出:

原创 LeetCode 13 羅馬數字轉整數

羅馬數字包含以下七種字符: I, V, X, L,C,D 和 M。 字符 數值 I 1 V 5 X 10 L 50 C

原创 何時我能獲得LeetCodeT恤?

好奇我什麼時候可以獲得LeetCodeT恤,就寫了一個小程序預測一下(用的Java1.8)。 算我每天都登錄的話,有七天連續登錄獎勵(一週17個積分)。每週周賽最差105(前100名的積分+參與積分),運氣好能305。 設計思路:

原创 LeetCode 1 兩數之和

給定一個整數數組 nums 和一個目標值 target,請你在該數組中找出和爲目標值的 兩個 整數。 你可以假設每種輸入只會對應一個答案。但是,你不能重複利用這個數組中同樣的元素。 示例: 給定 nums = [2, 7, 11, 1

原创 LeetCode 992 K 個不同整數的子數組

給定一個正整數數組 A,如果 A 的某個子數組中不同整數的個數恰好爲 K,則稱 A 的這個連續、不一定獨立的子數組爲好子數組。 (例如,[1,2,3,1,2] 中有 3 個不同的整數:1,2,以及 3。) 返回 A 中好子數組的數目。

原创 Python轉字符圖

春節沒事幹,想做一個程序員的福字,就寫了一個。(通過OpenCV進行的圖像處理) 源碼 主程序 # coding=utf-8 # 用的python2.7 from __future__ import print_function im

原创 LeetCode 988 從葉結點開始的最小字符串

給定一顆根結點爲 root 的二叉樹,書中的每個結點都有一個從 0 到 25 的值,分別代表字母 'a' 到 'z':值 0 代表 'a',值 1 代表 'b',依此類推。 找出按字典序最小的字符串,該字符串從這棵樹的一個葉結點開始,

原创 LeetCode 987 二叉樹的垂序遍歷

給定二叉樹,按垂序遍歷返回其結點值。 對位於 (X, Y) 的每個結點而言,其左右子結點分別位於 (X-1, Y-1) 和 (X+1, Y-1)。 把一條垂線從 X = -infinity 移動到 X = +infinity ,每當該

原创 從尾到頭打印鏈表

題目描述 輸入一個鏈表,按鏈表值從尾到頭的順序返回一個ArrayList。 解答 使用棧: import java.util.ArrayList; import java.util.List; import java.util.Sta

原创 二叉樹的下一個結點

題目描述 給定一個二叉樹和其中的一個結點,請找出中序遍歷順序的下一個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指針。 解答 第一種情況: if (pNode.right != null){ pNod