原创 Leetcode-974 和可被 K 整除的子數組

題目鏈接 本來我以爲這又是一道常見的前綴和,直到連續兩個負數的錯誤樣例讓我意識到還是要謹慎。 關鍵點 如果兩個前綴和同餘,證明其中間的數和爲K的倍數。 記錄book[0]=1,這樣就考慮了前綴和本身被 K 整除的情況。

原创 Leetcode-343 整數拆分

題目鏈接 與其說是一道算法題,不如說是一道數學題。 自己發現的無證明規律 對於一個數的最佳結果dp[n] 往往是dp[均分],或者均分附近的值相乘。 本質上其實是考慮了2,3爲因子的可能。 class Solution {

原创 Leetcode-6 Z字形變換

題目鏈接 我の解 感覺就是找規律欸,雖然一開始我並沒有看懂Z是個啥。與其說是Z,我覺得是個L變換。 如圖所示,紅色的爲一組,利用numRows可算出組的大小。 對於每一個s[i]計算它所在的行數,開一個vector<string

原创 Leetcode-1143. 最長公共子序列

題目鏈接 DP思路引導 咋說呢,當你列了一個二維dp時,往往都會考慮左上方的三個框框對這個框的遞推。 同類型見【第190場周賽】Leetcode-1458 兩個子序列的最大點積 做了幾道之後,你就會覺得它很經典。 本題具體思路

原创 【第26場雙週賽】Leetcode-1449 數位成本和爲目標值的最大數字

題目鏈接 其實本質仍爲完全揹包問題,只是字符串、數位與成本的數組關係使人迷惑。 num數組中:下標爲數位,num[i]爲對應成本,其實只是爲了計算方便位移了cost。 dp數組中:dp[i]表示成本爲i能組成的最大數字。 初始

原创 Leetcode-213 打家劫舍 II

本題鏈接 相關筆記 Leetcode-196 打家劫舍 Leetcode-337 打家劫舍Ⅲ 本題思路 本題關鍵在於第一家(0)和最後一家(nums.size()-1)不能同時偷 在這個前提下,我們把這個問題分解爲兩個子問題0~

原创 【4月打卡,聯動Leetcode-829】面試題57 - II. 和爲s的連續正數序列

題目鏈接 前綴和 由於做了太多前綴和,導致我麻木地直接寫了前綴和。 但是無論是map的維護還是很多數字的加和都讓這個解法很糟糕 class Solution { public: vector<vector<int>>

原创 Leetcode-887 雞蛋掉落

傳說中的經典面試題 李永樂老師的B站講解 題目鏈接 寫完超時的那一刻我是崩潰的 雖然我承認這個解法的時間複雜度高達O(N2K)O(N^2K)O(N2K),但是解出來就不容易了啊QAQ。 初始化 只有一層樓時,只需要一步;只有一

原创 【5月打卡】Leetcode-1371 每個元音包含偶數次的最長子字符串

解題思路:位運算狀態壓縮+前綴和 思考過程 滑動窗口?不對,成立之時不代表後面不成立。—> 前綴和? 但是五個數咋確定偶數?—>看題解,將aeiou存在不同的二進制位上,利用異或控制字母的個數。 位運算狀態壓縮 aeiou

原创 【4月打卡】面試題13. 機器人的運動範圍

成年人,最重要的就是情緒穩定。 (喂喂喂,這不是你寫簡單題的藉口欸。 DFS 全局變量中不可以用vector<vector<bool>> visited(100,vector<bool>(100,false)); 在leet

原创 【3月打卡】面試題59 - II. 隊列的最大值

鏡像問題(霧):Leetcode-155 最小棧 題目鏈接 溫習deque pop_back();//刪除容器最後一個數據 pop_front();//刪除容器第一個數據 push_back(elem);//在容器尾部添加一個數

原创 【5月打卡】 Leetcode-25 K 個一組翻轉鏈表

笨拙の解 將問題拆解成三部分:判斷剩餘長度是否需要反轉, 控制每組反轉,組與組之間連接. 思路易懂,問題也比較多。 遍歷次數較多,每個節點都會遍歷三次,速度不太好。 在最後一部分用了遞歸就其實並不滿足常數額外空間。 clas

原创 【4月打卡】Leetcode-1111 有效括號的嵌套深度

題目 題目超長,並且不好理解QAQ。 但是本質上就是希望將原括號字符串分成A串和B串,使得max(depth(A), depth(B)) 的可能取值最小。 注意A.length + B.length = seq.length,故

原创 【3月打卡】面試題62. 圓圈中最後剩下的數字

約瑟夫環 參考題解,本篇示例圖轉自題解,侵刪。 約瑟夫環的本質在於新環與舊環之間的下標映射關係。 想知道最後的幸運兒是誰? 順着最新的環一路逆推找到它本來的位置。 新環與舊環之間的映射 滿足以下關係: old_index= (

原创 【4月打卡】面試題 08.11. 硬幣(完全揹包問題)

題目 同類型 Leetcode-322 零錢兌換 完全揹包警告⚠ dp[n]表示數n有幾種表示方式 遍歷到每一個coins[i]時,對於j這個數就又出現了一種coins[i]與 j-coins[i]的組合 計算時要考慮硬幣順序帶