原创 【字符串】B054_LC_困於環中的機器人(模擬 / 取模控制方向)

一、Problem 在無限的平面上,機器人最初位於 (0, 0) 處,面朝北方。機器人可以接受下列三條指令之一: “G”:直走 1 個單位 “L”:左轉 90 度 “R”:右轉 90 度 機器人按順序執行指令 instructio

原创 【線性 dp】B014_LC_最長字符串鏈(暴力 / map 優化)

一、Problem 給出一個單詞列表,其中每個單詞都由小寫英文字母組成。 如果我們可以在 word1 的任何地方添加一個字母使其變成 word2,那麼我們認爲 word1 是 word2 的前身。例如,“abc” 是 “abac”

原创 【狀壓 dp】A004_LC_並行課程 II(枚舉子集)

一、Problem 給你一個整數 n 表示某所大學裏課程的數目,編號爲 1 到 n ,數組 dependencies 中, dependencies[i] = [xi, yi] 表示一個先修課的關係,也就是課程 xi 必須在課程

原创 【滑窗】B020_LC_刪掉一個元素以後全爲 1 的最長子數組(移動規則)

一、Problem 給你一個二進制數組 nums ,你需要從中刪掉一個元素。 請你在刪掉元素的結果數組中,返回最長的且只包含 1 的非空子數組的長度。 如果不存在這樣的子數組,請返回 0 。 提示 1: 輸入:nums = [1,

原创 【樹】B037_LC_從二叉搜索樹到更大和樹(反中序遍歷)

一、Problem Given the root of a binary search tree with distinct values, modify it so that every node has a new value

原创 【數組】B079_LC_交換一次的先前排列(找最接近的升序數對)

一、Problem 給你一個正整數的數組 A(其中的元素不一定完全不同),請你返回可在 一次交換(交換兩數字 A[i] 和 A[j] 的位置)後得到的、按字典序排列小於 A 的最大可能排列。 如果無法這麼操作,就請返回原數組 輸入

原创 【數學】B080_LC_絕對值表達式的最大值(表達式的符號分類)

一、Problem Given two arrays of integers with equal lengths, return the maximum value of: |arr1[i] - arr1[j]| + |arr2

原创 【前綴和】B005_LC_表現良好的最長時間段(樸素前綴和 / Map 記錄前綴和位置)

一、Problem We are given hours, a list of the number of hours worked per day for a given employee. A day is considere

原创 【線性 dp】B013_LC_不相交的線(LMS 變形)

一、Problem 我們在兩條獨立的水平線上按給定的順序寫下 A 和 B 中的整數。 現在,我們可以繪製一些連接兩個數字 A[i] 和 B[j] 的直線,只要 A[i] == B[j],且我們繪製的直線不與任何其他連線(非水平線)

原创 【區間 dp】B021_LC_分隔數組以得到最大和(預處理區間最大值 / 優化)

一、Problem 給出整數數組 A,將該數組分隔爲長度最多爲 K 的幾個(連續)子數組。分隔完成後,每個子數組的中的值都會變爲該子數組中的最大值。 返回給定數組完成分隔後的最大和。 輸入:A = [1,15,7,9,2,5,10

原创 【堆】B009_LC_距離相等的條形碼(大頂堆 + 選位置)

一、Problem 在一個倉庫裏,有一排條形碼,其中第 i 個條形碼爲 barcodes[i]。 請你重新排列這些條形碼,使其中兩個相鄰的條形碼 不能 相等。 你可以返回任何滿足該要求的答案,此題保證存在答案。 示例 1: 輸入:

原创 【區間 dp】B018_LC_葉值的最小代價生成樹(枚舉長度 / 單調棧)

一、Problem 給你一個正整數數組 arr,考慮所有滿足以下條件的二叉樹: 每個節點都有 0 個或是 2 個子節點 數組 arr 中的值與樹的中序遍歷中每個葉節點的值 每個非葉節點的值等於其左子樹和右子樹中葉節點的最大值的乘

原创 【貪心】C043_LC_等價多米諾骨牌對的數量(消除差異)

一、Problem Given a list of dominoes, dominoes[i] = [a, b] is equivalent to dominoes[j] = [c, d] if and only if eithe

原创 【樹】B036_LC_二叉樹尋路(找規律)

一、Problem 輸入:label = 14 輸出:[1,3,4,14] 1 <= label <= 10^6 二、Solution 方法一:規律 某一個結點 XXX 的父節點 fafafa 的求法: fa=left+rig

原创 【樹】B036_LC_二叉樹着色遊戲(分類討論)

一、Problem 有兩位極客玩家參與了一場「二叉樹着色」的遊戲。遊戲中,給出二叉樹的根節點 root,樹上總共有 n 個節點,且 n 爲奇數,其中每個節點上的值從 1 到 n 各不相同。 遊戲從「一號」玩家開始(「一號」玩家爲紅