Simon Lai's Blog
  • 首頁
  • 歸檔
  • 分類
  • 標籤
  • 關於

1899. Merge Triplets to Form Target Triplet - Medium

前往題目 想法 題目根本沒看清楚😂以為只能選兩個,結果是可以每個都選,取max 思路 把不可能的去掉,也就是只要有比target大的那組就可以直接拋棄 剩下的全部取最大值看是否最終和target一樣,因為可以每個都取 Code主要參考了這個解答,因為比Neetcode大大的更直觀一點 class Solution { public boolean mergeTripl
2024-03-11
Leetcode > Medium
#Leetcode #心得 #Array #Greedy

54. Spiral Matrix - Medium

前往題目 之前寫的文章 想法 初始的變數沒有想出來,有了left right top和bottom就簡單了 思路 定義上下左右邊界,以下的code要注意out of boundary 先取top elements 再取right elements 注意left要小於right,top要小於bottom以防special case 再取bottom elements 再取left element
2024-03-10
Leetcode > Medium
#Leetcode #心得 #Array #Matrix #Simulation

8. String to Integer (atoi) - Medium

前往題目 之前的文章 想法 有寫出來但是一些test case沒過,找bug找到瘋掉 思路 忽略空白 決定正數還是負數 拼出數字,要防止溢出 回傳前確認要負數或正數 這題很容易條件沒考慮好… Codeclass Solution { public int myAtoi(String s) { final int len = s.length();
2024-03-09
Leetcode > Medium
#Leetcode #心得 #String

416. Partition Equal Subset Sum - Medium

前往題目 之前的文章 這次看到一樣想不出來,連code都花了一點時間才懂 思路 先知道總和,就可以知道有沒有辦法被分成兩個subset了(因為要能被2整除才能分配成兩個subsets) 目標target直接sum / 2,因為兩個subset總和相等 疊代nums所有的element 每個疊代中都使用新的一個hashset來儲存可能的數值(不然會導致還沒疊代完,dp就會被更新,這樣會更改到同一輪
2024-03-09
Leetcode > Medium
#Leetcode #心得 #Array #Dynamic Programming

846. Hand of Straights - Medium

前往題目 想法 用dp? 思路 使用hashmap來儲存每個數字的個數,還有min heap來儲存最小值 循環直到minheap的數字都被取光 每次循環都先把最小的數字當基準點,然後再檢查這個數字的group能不能被建立 能不能被建立需要以下判斷 hashmap中有我們要的數字 取了之後,如果當前數字已經沒得取了,就看是否當前數字跟minheap的數字一樣,不一樣的話就代表沒辦法建立群組,因為
2024-03-08
Leetcode > Medium
#Leetcode #心得 #Array #Greedy #Hash Table #Sorting

45. Jump Game II - Medium

前往題目 想法 從後往前,但不知道怎麼判斷最小跳幾次 思路這種題目無非就是窮舉,優化就是記憶法,但是這題只需要判斷哪個選擇最有潛力,也就是貪心思想 從前往後 每次紀錄最遠可以跳到哪 如果來到剛剛著陸的地方就再跳一次,跳到目前最遠的位置 Codeclass Solution { public int jump(int[] nums) { int f
2024-03-07
Leetcode > Medium
#Leetcode #心得 #Array #Greedy #Dynamic Programming

72. Edit Distance - Medium

前往題目 思路 二維dp,分別是i和j,word1與word2的指針 i, j代表取word1和word2的前i和前j個 如此一來,base case就是word1取了前幾個,word2取0個,那每次都會等於i;相同的,word1取0個,word2取了前幾個,每次都等於j 從左到右一個一個看,當前的字母都一樣的話那代表什麼都不用做,所以就等於上次(i - 1, j - 1)的操作數 如果不一樣,
2024-03-07
Leetcode > Medium
#Leetcode #心得 #String #Dynamic Programming

97. Interleaving String - Medium

前往題目 思路這題畫二維陣列會清楚許多 檢查s1和s2的長度加起來是否和s3一樣長,因為s1和s2是組成s3的所有部分 dp二維陣列,一維與二維,指的是s1和s2的指針,true代表當前取的s1和s2可以成功組成s3的一部分,false則不行 dp的確定條件是dp[s1的長度][s2的長度]為true,因為那個位置代表s1和s2都看過一遍,可以成功組成s3 從後往前疊代,由dp的確定條件慢慢往
2024-03-06
Leetcode > Medium
#Leetcode #心得 #String #Dynamic Programming

CS:APP 電腦系統:程式設計師的角度 第二章之一-Information Storage筆記

二進制非常適合機器來儲存以及處理訊息,而且有很多方式可以輕鬆的表達二進制,例如: punched card上的洞 線上的高低電壓 磁場的順時針與逆時針 二進制有以下三種常見的表示數字方式: Unsigned Two's-complement Floating-point 一些特性 用32bit的int來計算以下算式會溢出變為負數,這和電腦如何表示以及儲存數字有關 $200 * 3
2024-03-05
電腦科學 > Computer Systems - A Programmer's Perspective
#Computer System

494. Target Sum - Medium

前往題目 想法 dp,但轉換方程不知道該拿什麼作為第一維,什麼作為第二維 思路 利用memoization和dp dp的一維是(目前在哪個index, 然後當前的總和是多少),第二維就是該組合可以有幾種方式達成,也就是題目要求的結果 從第0 index開始,檢查是否已經計算過,沒有的話繼續呼叫方法,index要加1,因為要看下一個了,而當前總和要減去當前的index的值 把所有的狀況都列出來就
2024-03-05
Leetcode > Medium
#Leetcode #心得 #Array #Dynamic Programming #Backtracking
1…1718192021…36

搜尋

Hexo Fluid