原创 leetcode165. 比較版本號

比較兩個版本號 version1 和 version2。 如果 version1 > version2 返回 1,如果 version1 < version2 返回 -1, 除此之外返回 0。 你可以假設版本字符串非空,並且只包含

原创 leetcode205. 同構字符串

給定兩個字符串 s 和 t,判斷它們是否是同構的。 如果 s 中的字符可以被替換得到 t ,那麼這兩個字符串是同構的。 所有出現的字符都必須用另一個字符替換,同時保留字符的順序。兩個字符不能映射到同一個字符上,但字符可以映射自己本

原创 leetcode211. 添加與搜索單詞 - 數據結構設計

設計一個支持以下兩種操作的數據結構: void addWord(word) bool search(word) search(word) 可以搜索文字或正則表達式字符串,字符串只包含字母 . 或 a-z 。 . 可以表示任何一個字

原创 leetcode461. 漢明距離

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

原创 leetcode210. 課程表 II

現在你總共有 n 門課需要選,記爲 0 到 n-1。 在選修某些課程之前需要一些先修課程。 例如,想要學習課程 0 ,你需要先完成課程 1 ,我們用一個匹配來表示他們: [0,1] 給定課程總量以及它們的先決條件,返回你爲了學完所

原创 leetcode209. 長度最小的子數組

給定一個含有 n 個正整數的數組和一個正整數 s ,找出該數組中滿足其和 ≥ s 的長度最小的連續子數組。如果不存在符合條件的連續子數組,返回 0。 示例: 輸入: s = 7, nums = [2,3,1,2,4,3] 輸出:

原创 leetcode204. 計數質數

統計所有小於非負整數 n 的質數的數量。 示例: 輸入: 10 輸出: 4 解釋: 小於 10 的質數一共有 4 個, 它們是 2, 3, 5, 7 。 厄拉多賽篩法,先找到不超過根號n的所有素數,再把這些素數的所有倍數去掉: c

原创 leetcode199. 二叉樹的右視圖

給定一棵二叉樹,想象自己站在它的右側,按照從頂部到底部的順序,返回從右側所能看到的節點值。 示例: 輸入: [1,2,3,null,5,null,4] 輸出: [1, 3, 4] 層序遍歷: # Definition for a

原创 編程題:字符串的最長重複子串

要注意的是,這裏說的最長重複子串是可以重合的,如abcabcabc中,這裏說的最長重複子串是abcabc,而不是abc。 這題的思路就是,得到字符串的後綴數組並將其排序,再依次檢測相鄰兩個字符串的前綴取最長的就行: # -*- c

原创 leetcode201. 數字範圍按位與

給定範圍 [m, n],其中 0 <= m <= n <= 2147483647,返回此範圍內所有數字的按位與(包含 m, n 兩端點)。 示例 1: 輸入: [5,7] 輸出: 4 示例 2: 輸入: [0,1] 輸出: 0 就

原创 leetcode200. 島嶼的個數

給定一個由 ‘1’(陸地)和 ‘0’(水)組成的的二維網格,計算島嶼的數量。一個島被水包圍,並且它是通過水平方向或垂直方向上相鄰的陸地連接而成的。你可以假設網格的四個邊均被水包圍。 示例 1: 輸入: 11110 11010 11

原创 leetcode216. 組合總和III

找出所有相加之和爲 n 的 k 個數的組合。組合中只允許含有 1 - 9 的正整數,並且每種組合中不存在重複的數字。 說明: 所有數字都是正整數。 解集不能包含重複的組合。 示例 1: 輸入: k = 3, n = 7 輸出: [

原创 leetcode217. 存在重複元素

給定一個整數數組,判斷是否存在重複元素。 如果任何值在數組中出現至少兩次,函數返回 true。如果數組中每個元素都不相同,則返回 false。 示例 1: 輸入: [1,2,3,1] 輸出: true 示例 2: 輸入: [1,2

原创 leetcode207. 課程表

現在你總共有 n 門課需要選,記爲 0 到 n-1。 在選修某些課程之前需要一些先修課程。 例如,想要學習課程 0 ,你需要先完成課程 1 ,我們用一個匹配來表示他們: [0,1] 給定課程總量以及它們的先決條件,判斷是否可能完成

原创 leetcode173. 二叉搜索樹迭代器

實現一個二叉搜索樹迭代器。你將使用二叉搜索樹的根節點初始化迭代器。 調用 next() 將返回二叉搜索樹中的下一個最小的數。 示例: BSTIterator iterator = new BSTIterator(root); it