原创 60第k個排列(康託);73矩陣置零;74搜索二維矩陣;33搜索旋轉排序數組;81搜索旋轉排序數組 II

給出集合 [1,2,3,…,n],其所有元素共有 n! 種排列。 按大小順序列出所有排列情況,並一一標記,當 n = 3 時, 所有排列如下:     "123"     "132"     "213"     "231"     "3

原创 50Pow(x, n);54螺旋矩陣;59螺旋矩陣 II;61旋轉鏈表

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

原创 36有效的數獨;41缺失的第一個正數

判斷一個 9x9 的數獨是否有效。只需要根據以下規則,驗證已經填入的數字是否有效即可。     數字 1-9 在每一行只能出現一次。     數字 1-9 在每一列只能出現一次。     數字 1-9 在每一個以粗實線分隔的 3x3 宮

原创 128最長連續序列;684冗餘連接;685冗餘連接 II

給定一個未排序的整數數組,找出最長連續序列的長度。 要求算法的時間複雜度爲 O(n)。 示例: 輸入: [100, 4, 200, 1, 3, 2] 輸出: 4 解釋: 最長連續序列是 [1, 2, 3, 4]。它的長度爲 4。 cla

原创 並查集:721賬戶的合併;947移除最多的同行或同列石頭;959由斜槓劃分區域

給定一個列表 accounts,每個元素 accounts[i] 是一個字符串列表,其中第一個元素 accounts[i][0] 是 名稱 (name),其餘元素是 emails 表示該帳戶的郵箱地址。 現在,我們想合併這些帳戶。如果兩個

原创 494目標和;312戳氣球;72編輯距離

給定一個非負整數數組,a1, a2, ..., an, 和一個目標數,S。現在你有兩個符號 + 和 -。對於數組中的任意一個整數,你都可以從 + 或 -中選擇一個符號添加在前面。 返回可以使最終數組和爲目標數 S 的所有添加符號的方法數。

原创 並查集(處理複雜DFS問題):130被圍繞的區域;判定合法等式;547朋友圈

模板 class UnionFind{ vector<int>parent,rank; int cnt; public: UnionFind(vector<vector<char>>& board){

原创 LLVM:The LLVM Target-Independent Code Generator

https://llvm.org/docs/CodeGenerator.html   Introduction Required components in the code generator The high-level design

原创 滑動窗口:438找到字符串中所有字母異位詞;76最小覆蓋子串;567字符串的排列;3無重複字符的最長子串

滑動窗口總結 int left = 0, right = 0; while (right < s.size()) {` // 增大窗口 window.add(s[right]); right++; whi

原创 621任務調度器;經典貪心算法(理解區分動態和貪心):55跳躍遊戲+45跳躍遊戲 II

給定一個用字符數組表示的 CPU 需要執行的任務列表。其中包含使用大寫的 A - Z 字母表示的26 種不同種類的任務。任務可以以任意順序執行,並且每個任務都可以在 1 個單位時間內執行完。CPU 在任何一個單位時間內都可以執行一個任務,

原创 貪心算法之區間調度問題/435無重疊區間/452用最少數量的箭引爆氣球

給你很多形如 [start, end] 的閉區間,請你設計一個算法,算出這些區間中最多有幾個互不相交的區間。注意邊界相同並不算相交。 正確的思路其實很簡單,可以分爲以下三步: 從區間集合 intvs 中選擇一個區間 x,這個 x 是在當前

原创 394字符串解碼;經典動態規劃問題:高樓扔雞蛋+高樓扔雞蛋進階

給定一個經過編碼的字符串,返回它解碼後的字符串。 編碼規則爲: k[encoded_string],表示其中方括號內部的 encoded_string 正好重複 k 次。注意 k 保證爲正整數。 你可以認爲輸入字符串總是有效的;輸入字符串

原创 動態規劃:0-1揹包+完全揹包,滿包+二維dp優化成一維dp

1. 01揹包 有N件物品和一個容量爲W 的揹包。放入第i(i=0,1,,,N-1)件物品耗費的容量是W[i],得到的價值是V[i]。求解將哪些物品裝入揹包可使價值總和最大。 dp[i][j]:可選物品爲0~i,容量爲j時的最大價值

原创 兩字符串最值問題->動態規劃dp[i][j]:編輯距離+最長公共子序列;一字符串最值問題->動態規劃dp[i][j]:最長迴文子序列

 https://labuladong.github.io/ebook/動態規劃系列/ 最值+最優子結構+重疊子問題: 兩個數組/字符串 dp[i][j]:SelArray1[0~i] SelArray2[0~j] 一般與dp

原创 739每日溫度;416分割等和子集

根據每日 氣溫 列表,請重新生成一個列表,對應位置的輸出是需要再等待多久溫度纔會升高超過該日的天數。如果之後都不會升高,請在該位置用 0 來代替。 例如,給定一個列表 temperatures = [73, 74, 75, 71, 69,