原创 JavaScript:leetcode_146. LRU緩存機制(vue的keep-live所使用的緩存機制)

題目說明 運用你所掌握的數據結構,設計和實現一個 LRU (最近最少使用) 緩存機制。它應該支持以下操作: 獲取數據 get 和 寫入數據 put 。 獲取數據 get(key) - 如果關鍵字 (key) 存在於緩存中,則獲

原创 JavaScript:1371. 每個元音包含偶數次的最長子字符串(前綴和)

題目說明 給你一個字符串 s ,請你返回滿足以下條件的最長子字符串的長度:每個元音字母,即 'a','e','i','o','u' ,在子字符串中都恰好出現了偶數次。 示例 1: 輸入:s = "eleetminicow

原创 JavaScript:leetcode_5. 最長迴文子串

題目說明 給定一個字符串 s,找到 s 中最長的迴文子串。你可以假設 s 的最大長度爲 1000。 示例 1: 輸入: "babad" 輸出: "bab" 注意: "aba" 也是一個有效答案。 示例 2: 輸入: "cb

原创 JavaScript:leetcode_105. 從前序與中序遍歷序列構造二叉樹(前序找根,中序分左右,遞歸)

題目說明 根據一棵樹的前序遍歷與中序遍歷構造二叉樹。 注意: 你可以假設樹中沒有重複的元素。 例如,給出 前序遍歷 preorder = [3,9,20,15,7] 中序遍歷 inorder = [9,3,15,20,7]

原创 JavaScript:leetcode_680. 驗證迴文字符串 Ⅱ(雙指針)

題目說明 給定一個非空字符串 s,最多刪除一個字符。判斷是否能成爲迴文字符串。 示例 1: 輸入: "aba" 輸出: True 示例 2: 輸入: "abca" 輸出: True 解釋: 你可以刪除c字符。 注意: 字

原创 JavaScript:leetcode_210. 課程表 II(BFS)

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

原创 JavaScript:leetcode_152. 乘積最大子數組(動態規劃)

題目說明 給你一個整數數組 nums ,請你找出數組中乘積最大的連續子數組(該子數組中至少包含一個數字),並返回該子數組所對應的乘積。 示例 1: 輸入: [2,3,-2,4] 輸出: 6 解釋: 子數組 [2,3] 有最大乘積

原创 JavaScript:136. 只出現一次的數字(異或運算)

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

原创 JavaScript:560. 和爲K的子數組(前序和)

題目說明 給定一個整數數組和一個整數 k,你需要找到該數組中和爲 k 的連續的子數組的個數。 示例 1 : 輸入:nums = [1,1,1], k = 2 輸出: 2 , [1,1] 與 [1,1] 爲兩種不同的情況。 說明

原创 JavaScript:102. 二叉樹的層序遍歷(1. 層序遍歷 + 深度遍歷 2. 動態規劃)

題目說明 給你一個二叉樹,請你返回其按 層序遍歷 得到的節點值。 (即逐層地,從左到右訪問所有節點)。 示例: 二叉樹:[3,9,20,null,null,15,7], 3 / \ 9 20

原创 JavaScript:50. Pow(x, n)(冪計算)

題目說明 1.實現 pow(x, n) ,即計算 x 的 n 次冪函數。 示例 1: 輸入: 2.00000, 10 輸出: 1024.00000 示例 2: 輸入: 2.10000, 3 輸出: 9.26100 示例 3:

原创 JavaScript:155. 最小棧(輔助棧)

題目說明 設計一個支持 push ,pop ,top 操作,並能在常數時間內檢索到最小元素的棧。 push(x) —— 將元素 x 推入棧中。 pop() —— 刪除棧頂的元素。 top() —— 獲取棧頂元素。 getMin(

原创 JavaScript:236. 二叉樹的最近公共祖先(1. 層序遍歷 + 二叉樹任意遍歷方法 2. 二叉樹遍歷 + 動態規劃)

題目說明 給定一個二叉樹, 找到該樹中兩個指定節點的最近公共祖先。 百度百科中最近公共祖先的定義爲:“對於有根樹 T 的兩個結點 p、q,最近公共祖先表示爲一個結點 x, 滿足 x 是 p、q 的祖先且 x 的深度儘可能大(一個

原创 JavaScript:leetcode_69. x 的平方根

題目說明 實現 int sqrt(int x) 函數。 計算並返回 x 的平方根,其中 x 是非負整數。 由於返回類型是整數,結果只保留整數的部分,小數部分將被捨去。 示例 1: 輸入: 4 輸出: 2 示例 2: 輸入

原创 JavaScript:leetcode_72. 編輯距離(動態規劃,vue,react的類似diff算法)

題目說明 給你兩個單詞 word1 和 word2,請你計算出將 word1 轉換成 word2 所使用的最少操作數 。 你可以對一個單詞進行如下三種操作: 插入一個字符 刪除一個字符 替換一個字符 示例 1: 輸入: