原创 LeetCode筆記:最長有效括號

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

原创 每日一題:Jump Game

給定一個非負整數數組,你最初位於數組的第一個位置。 數組中的每個元素代表你在該位置可以跳躍的最大長度。 判斷你是否能夠到達最後一個位置。 示例1: 輸入: [2,3,1,1,4] 輸出: true 解釋: 我們可以先跳 1 步

原创 二叉樹的前、中、後序遍歷(遞歸與迭代寫法)

二叉樹的前序遍歷 二叉樹的前序遍歷指先訪問頭結點,再訪問左子樹,再訪問右子樹。 遞歸寫法 class Solution { vector<int> ans; void preorder(TreeNode* root

原创 每日一題:求兩線段的交點

給定兩條線段(表示爲起點start = {X1, Y1}和終點end = {X2, Y2}),如果它們有交點,請計算其交點,沒有交點則返回空值。 要求浮點型誤差不超過10^-6。若有多個交點(線段重疊)則返回 X 值最小的點,X

原创 每日一題:雞蛋掉落

你將獲得 K 個雞蛋,並可以使用一棟從 1 到 N 共有 N 層樓的建築。 每個蛋的功能都是一樣的,如果一個蛋碎了,你就不能再把它掉下去。 你知道存在樓層 F ,滿足 0 <= F <= N 任何從高於 F 的樓層落下的雞蛋都

原创 每日一題:翻轉字符串裏的單詞

給定一個字符串,逐個翻轉字符串中的每個單詞。 示例1: 輸入: “the sky is blue” 輸出: “blue is sky the” 示例2: 輸入: " hello world! " 輸出: “world!

原创 每日一題:括號生成

數字 n 代表生成括號的對數,請你設計一個函數,用於能夠生成所有可能的並且 有效的 括號組合。 示例: 輸入:n = 3 輸出:[ “((()))”, “(()())”, “(())()”, “()(())”, “()()()

原创 每日一題:編輯距離

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

原创 K個一組翻轉鏈表

給你一個鏈表,每 k 個節點一組進行翻轉,請你返回翻轉後的鏈表。 k 是一個正整數,它的值小於或等於鏈表的長度。 如果節點總數不是 k 的整數倍,那麼請將最後剩餘的節點保持原有順序。 示例: 給你這個鏈表:1->2->3-

原创 每日一題:生命遊戲(簡易版元胞自動機)

題目:根據 百度百科 ,生命遊戲,簡稱爲生命,是英國數學家約翰·何頓·康威在 1970 年發明的細胞自動機。 給定一個包含 m × n 個格子的面板,每一個格子都可以看成是一個細胞。每個細胞都具有一個初始狀態:1 即爲活細胞(li

原创 LFU緩存機制實現

剛學完LRU就來LFU。。。 設計並實現最不經常使用(LFU)緩存的數據結構。它應該支持以下操作:get 和 put。 get(key) - 如果鍵存在於緩存中,則獲取鍵的值(總是正數),否則返回 -1。 put(key,

原创 操作系統筆記:內存管理

操作系統內存部分的知識點總結 存儲器的層次結構: 高速緩存Cache:KB~MB級、少量、高速、昂貴、易失; 內存:GB級、中等速度、中等價格、易失; SSD:?00G級、較高速、價較高、非易失; 磁盤/外村:GB~TB級、低

原创 每日一題:卡牌分組

給定一副牌,每張牌上都寫着一個整數。 此時,你需要選定一個數字 X,使我們可以將整副牌按下述規則分成 1 組或更多組: 每組都有 X 張牌。 組內所有的牌上都寫着相同的整數。 僅當你可選的 X >= 2 時返回 true。

原创 每日一題:單詞的壓縮編碼 / 字典樹的應用

給定一個單詞列表,我們將這個列表編碼成一個索引字符串 S 與一個索引列表 A。 例如,如果這個列表是 [“time”, “me”, “bell”],我們就可以將其表示爲 S = “time#bell#” 和 indexes =

原创 每日一題:壓縮字符串

字符串壓縮。利用字符重複出現的次數,編寫一種方法,實現基本的字符串壓縮功能。比如,字符串aabcccccaaa會變爲a2b1c5a3。若“壓縮”後的字符串沒有變短,則返回原先的字符串。你可以假設字符串中只包含大小寫英文字母(a至