原创 leetcode 把數字翻譯成字符串(C++)

給定一個數字,我們按照如下規則把它翻譯爲字符串:0 翻譯成 “a” ,1 翻譯成 “b”,……,11 翻譯成 “l”,……,25 翻譯成 “z”。一個數字可能有多個翻譯。請編程實現一個函數,用來計算一個數字有多少種不同的翻譯方法。   示

原创 leetcode 5441. 保證文件名唯一(C++)

給你一個長度爲 n 的字符串數組 names 。你將會在文件系統中創建 n 個文件夾:在第 i 分鐘,新建名爲 names[i] 的文件夾。 由於兩個文件 不能 共享相同的文件名,因此如果新建文件夾使用的文件名已經被佔用,系統會以 (k)

原创 leetcode 1497. 檢查數組對是否可以被 k 整除(C++)

給你一個整數數組 arr 和一個整數 k ,其中數組長度是偶數,值爲 n 。 現在需要把數組恰好分成 n / 2 對,以使每對數字的和都能夠被 k 整除。 如果存在這樣的分法,請返回 True ;否則,返回 False 。   示例 1:

原创 leetcode 面試題 16.18. 模式匹配(C++)

你有兩個字符串,即pattern和value。 pattern字符串由字母"a"和"b"組成,用於描述字符串中的模式。例如,字符串"catcatgocatgo"匹配模式"aabab"(其中"cat"是"a","go"是"b"),該字符串也

原创 leetcode 1493. 刪掉一個元素以後全爲 1 的最長子數組(C++)

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

原创 leetcode 面試題 17.16. 按摩師(C++)

一個有名的按摩師會收到源源不斷的預約請求,每個預約都可以選擇接或不接。在每次預約服務之間要有休息時間,因此她不能接受相鄰的預約。給定一個預約請求序列,替按摩師找到最優的預約集合(總預約時間最長),返回總的分鐘數。 注意:本題相對原題稍作改

原创 leetcode 5425. 切割後面積最大的蛋糕(C++)

矩形蛋糕的高度爲 h 且寬度爲 w,給你兩個整數數組 horizontalCuts 和 verticalCuts,其中 horizontalCuts[i] 是從矩形蛋糕頂部到第  i 個水平切口的距離,類似地, verticalCuts[

原创 leetcode 1117. H2O 生成(C++)

現在有兩種線程,氧 oxygen 和氫 hydrogen,你的目標是組織這兩種線程來產生水分子。 存在一個屏障(barrier)使得每個線程必須等候直到一個完整水分子能夠被產生出來。 氫和氧線程會被分別給予 releaseHydrogen

原创 leetcode 1472. 設計瀏覽器歷史記錄(C++)

你有一個只支持單個標籤頁的 瀏覽器 ,最開始你瀏覽的網頁是 homepage ,你可以訪問其他的網站 url ,也可以在瀏覽歷史中後退 steps 步或前進 steps 步。 請你實現 BrowserHistory 類: BrowserH

原创 leetcode 5366. 檢查網格中是否存在有效路徑(C++)

給你一個 m x n 的網格 grid。網格里的每個單元都代表一條街道。grid[i][j] 的街道可以是: 1 表示連接左單元格和右單元格的街道。 2 表示連接上單元格和下單元格的街道。 3 表示連接左單元格和下單元格的街道。 4 表示

原创 leetcode 820. 單詞的壓縮編碼(C++)

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

原创 leetcode 5370. 設計地鐵系統(C++)

請你實現一個類 UndergroundSystem ,它支持以下 3 種方法: 1. checkIn(int id, string stationName, int t) 編號爲 id 的乘客在 t 時刻進入地鐵站 stationName

原创 leetcode 1461. 檢查一個字符串是否包含所有長度爲 K 的二進制子串(C++)

給你一個二進制字符串 s 和一個整數 k 。 如果所有長度爲 k 的二進制字符串都是 s 的子串,請返回 True ,否則請返回 False 。   示例 1: 輸入:s = "00110110", k = 2 輸出:true 解釋:長

原创 leetcode 1458. 兩個子序列的最大點積(C++)

給你兩個數組 nums1 和 nums2 。 請你返回 nums1 和 nums2 中兩個長度相同的 非空 子序列的最大點積。 數組的非空子序列是通過刪除原數組中某些元素(可能一個也不刪除)後剩餘數字組成的序列,但不能改變數字間相對順序。

原创 leetcode 1457. 二叉樹中的僞迴文路徑(C++)

給你一棵二叉樹,每個節點的值爲 1 到 9 。我們稱二叉樹中的一條路徑是 「僞迴文」的,當它滿足:路徑經過的所有節點值的排列中,存在一個迴文序列。 請你返回從根到葉子節點的所有路徑中 僞迴文 路徑的數目。   示例 1: 輸入:roo