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

11. Container With Most Water - Medium

前往題目 之前寫的文章 思路 2 pointers 只移動短的那邊,才有機會有更大的值 Codeclass Solution { public int maxArea(int[] height) { int l = 0, r = height.length - 1; int res = Integer.MIN_VALUE;
2024-01-31
Leetcode > Medium
#Leetcode #心得 #Array #Two Pointers #Greedy

125. Valid Palindrome - Easy

前往題目 之前寫的Medium文章 思路 2 pointers 遇到不是letter或digit的直接移動指針然後進到下一個循環 遇到是的話直接判斷是否相同,注意letter的話要轉成lowercase或uppercase Codeclass Solution { public boolean isPalindrome(String s) { int
2024-01-30
Leetcode > Easy
#Leetcode #心得 #String #Two Pointers

167. Two Sum II - Input Array Is Sorted - Medium

前往題目 想法 2 pointers 每種組合都試,但兩數之合一旦超過target直接跳過當前left pointer 思路 左右指針,一個指起點一個指終點 當左右指針之和小於target,代表要讓和變大才有可能符合target,所以要移動左邊的pointer往右,移動右邊的會出界 反之,移動右邊的往左,因為往右就算沒出界,和會變更大 題目保證了一定有解,所以往內縮到最後一定會找到解 Cod
2024-01-30
Leetcode > Medium
#Leetcode #心得 #Array #Two Pointers #Binary Search

78. Subsets - Medium

前往題目 之前寫過了,這次一看到就知道要用backtracking但是細節漏了一點 想法 用backtracking 思路 每次疊代加入當前array到答案裡 並且用下一個num繼續呼叫backtrack 循環結束前把最後一位去掉 傳i + 1的原因是讓演算法不要取到同一個數字 Codeclass Solution { List<List<Integer>> r
2024-01-29
Leetcode > Medium
#Leetcode #心得 #Array #Bit Manipulation #Backtracking

743. Network Delay Time - Medium

前往題目 思路可用任意找最小路徑算法 建立鄰接表 利用BFS疊代起始點出發的每一層node並更新最短路徑 最後因為要知道所有node都接收到signal需要多少時間,所以取最大值 Code 以下是來自discussion的答案,比較好理解,沒有用到priority queue class Solution { /* Step 1: Create a Map of star
2024-01-29
Leetcode > Medium
#Leetcode #心得 #Depth-First Search #Breadth-First Search #Graph #Heap (Priority Queue) #Shortest Path

98. Validate Binary Search Tree - Medium

前往題目 搬運一下之前寫過的 想法 要檢查數值,還要檢查是否是BST 紀錄擁有子樹的node的數值,然後檢查左邊,比較數值,有錯就直接結束;右邊也是一樣 檢查是否是BST得用height,左右子樹的高度差不能超過1 思路 Recursion檢查每個node是否小於等於最小值,或是否大於等於最大值,如果有就是false Code 嘗試寫了,但邏輯有誤,沒有考慮到左子樹有可能會比右子樹的某一項
2024-01-28
Leetcode > Medium
#Leetcode #心得 #Binary Search Tree #Binary Tree #Depth-First Search #Tree

206. Reverse Linked List - Easy

前往題目 想法 之前做過,忘了要用一個prev存上一個node 思路 疊代所有node 每個node都紀錄一下前一個,然後切換當前的node Code class Solution { public ListNode reverseList(ListNode head) { if (head == null || head.next == nul
2024-01-28
Leetcode > Easy
#Leetcode #心得 #Recursion #Linked List

155. Min Stack - Medium

前往題目 想法 題目要求每個方法都要O(1)時間,如果用一般的stack來做的話那push,pop,和top都可以輕易做到。但是還有一個getMin,他要回傳stack中最小的數,如果只用一個int來追蹤的話那萬一這個最小值被pop了,就不知道下一個最小值是多少了,在哪裡都有可能。所以這裡應該需要一個PriorityQueue來儲存 但是這樣又有一個問題,pop的時候中間值可能不見了,那就還要再
2024-01-27
Leetcode > Medium
#Leetcode #心得 #Stack #Design

409. Longest Palindrome - Easy

前往題目 想法 存每個字母的數量,最後疊代取出所有偶數還有一個奇數 思路想法對了,實作有些情況沒考慮到 儲存所有字母的counts 疊代這些counts,如果是奇數,注意要把他-1加到結果裡,因為偶數counts是需要的 遇到偶數就直接把count加進去答案 最後回傳的時候如果有一個奇數項,就把他加進去 Codeclass Solution { public int lo
2024-01-27
Leetcode > Medium
#Leetcode #心得 #String #Greedy #Hash Table

435. Non-overlapping Intervals - Medium

前往題目 想法 用掃描線,但實作卡住了 思路 用每個array的第一項排序 以第一項為基準開始疊代確認是否相交 如果不相交就更新區間的尾端 如果相交,多一個需要移除,並且取比較小的尾端,這樣可以減低之後再相交的機率 Code // T: O(nlogn) // S: O(1) class Solution { public int eraseOverlapInterval
2024-01-26
Leetcode > Medium
#Leetcode #心得 #Array #Greedy #Dynamic Programming #Sorting
1…2223242526…36

搜尋

Hexo Fluid