原创 Leetcode:NO.44 通配符匹配 動態規劃+回溯

題目 給定一個字符串 (s) 和一個字符模式 § ,實現一個支持 ‘?’ 和 ‘*’ 的通配符匹配。 ‘?’ 可以匹配任何單個字符。 ‘*’ 可以匹配任意字符串(包括空字符串)。 兩個字符串完全匹配纔算匹配成功。 說明: s 可

原创 Leetcode:NO.63 不同路徑 II 動態規劃

題目 一個機器人位於一個 m x n 網格的左上角 (起始點在下圖中標記爲“Start” )。 機器人每次只能向下或者向右移動一步。機器人試圖達到網格的右下角(在下圖中標記爲“Finish”)。 現在考慮網格中有障礙物。那麼從左上

原创 Leetcode: NO.32 最長有效括號 動態規劃+棧

題目 給定一個只包含 ‘(’ 和 ‘)’ 的字符串,找出最長的包含有效括號的子串的長度。 示例 1: 輸入: "(()" 輸出: 2 解釋: 最長有效括號子串爲 "()" 示例 2: 輸入: ")()())" 輸出: 4 解

原创 Leetcode:NO.209 長度最小的子數組 移動窗口

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

原创 Leetcode:劍指 Offer 09. 用兩個棧實現隊列

題目 用兩個棧實現一個隊列。隊列的聲明如下,請實現它的兩個函數 appendTail 和 deleteHead ,分別完成在隊列尾部插入整數和在隊列頭部刪除整數的功能。(若隊列中沒有元素,deleteHead 操作返回 -1 )

原创 Leetcode:NO.215 數組中的第K個最大元素 二分法

題目 在未排序的數組中找到第 k 個最大的元素。請注意,你需要找的是數組排序後的第 k 個最大的元素,而不是第 k 個不同的元素。 示例 1: 輸入: [3,2,1,5,6,4] 和 k = 2 輸出: 5 示例 2: 輸入

原创 Leetcode:面試題 02.01. 移除重複節點

題目 編寫代碼,移除未排序鏈表中的重複節點。保留最開始出現的節點。 示例1: 輸入:[1, 2, 3, 3, 2, 1] 輸出:[1, 2, 3] 示例2: 輸入:[1, 1, 1, 1, 2] 輸出:[1, 2]

原创 Leetcode:NO.41 缺失的第一個正數 哈希表

題目 給你一個未排序的整數數組,請你找出其中沒有出現的最小的正整數。 示例 1: 輸入: [1,2,0] 輸出: 3 示例 2: 輸入: [3,4,-1,1] 輸出: 2 示例 3: 輸入: [7,8,9,11,12]

原创 Leetcode:NO.378 有序矩陣中第K小的元素 二分法

題目 給定一個 n x n 矩陣,其中每行和每列元素均按升序排序,找到矩陣中第 k 小的元素。 請注意,它是排序後的第 k 小元素,而不是第 k 個不同的元素。 示例: matrix = [ [ 1, 5, 9],

原创 Leetcode:NO.108 將有序數組轉換爲二叉搜索樹 遞歸

題目 將一個按照升序排列的有序數組,轉換爲一棵高度平衡二叉搜索樹。 本題中,一個高度平衡二叉樹是指一個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過 1。 示例: 給定有序數組: [-10,-3,0,5,9], 一個可能

原创 Leetcode:NO.718 最長重複子數組 動態規劃+滑動窗口

題目 給兩個整數數組 A 和 B ,返回兩個數組中公共的、長度最長的子數組的長度。 示例 1: 輸入: A: [1,2,3,2,1] B: [3,2,1,4,7] 輸出: 3 解釋: 長度最長的公共子數組是 [3, 2, 1]

原创 Leetcode:NO.16 最接近的三數之和 枚舉+雙指針

題目 給定一個包括 n 個整數的數組 nums 和 一個目標值 target。找出 nums 中的三個整數,使得它們的和與 target 最接近。返回這三個數的和。假定每組輸入只存在唯一答案。 示例: 輸入:nums = [-1

原创 Leetcode:NO.67 二進制求和

題目 給你兩個二進制字符串,返回它們的和(用二進制表示)。 輸入爲 非空 字符串且只包含數字 1 和 0。 示例 1: 輸入: a = "11", b = "1" 輸出: "100" 示例 2: 輸入: a = "1010"

原创 Leetcode:NO.139 單詞拆分 動態規劃

題目 給定一個非空字符串 s 和一個包含非空單詞列表的字典 wordDict,判定 s 是否可以被空格拆分爲一個或多個在字典中出現的單詞。 說明: 拆分時可以重複使用字典中的單詞。 你可以假設字典中沒有重複的單詞。 示例 1:

原创 Leetcode:NO.124 二叉樹中的最大路徑和 深度優先

題目 給定一個非空二叉樹,返回其最大路徑和。 本題中,路徑被定義爲一條從樹中任意節點出發,達到任意節點的序列。該路徑至少包含一個節點,且不一定經過根節點。 示例 1: 輸入: [1,2,3] 1 /