86. Partition List - Medium 前往題目 想法 循環兩次,一次組小於x的,一次組大於等於x的 思路其實一次就好,一起組 宣告兩個新的list 走訪每個ListNode,< x的放一組,>= x的放一組 兩組連起來 Codeclass Solution { public ListNode partition(ListNode head, int x) { ListNo 2024-10-07 Leetcode > Medium #Leetcode #心得 #Two Pointers #Linked List
1669. Merge In Between Linked Lists - Medium 前往題目 想法 簡單的拆開後連接 思路 找到第一個斷點,以及第二個斷點 把兩個斷點接上list2的頭和尾 Codeclass Solution { public ListNode mergeInBetween(ListNode list1, int a, int b, ListNode list2) { ListNode breakPointFro 2024-10-03 Leetcode > Medium #Leetcode #心得 #Linked List
2130. Maximum Twin Sum of a Linked List - Medium 前往題目 想法 儲存到arraylist後就可以一組一組看,不過會需要O(n)空間 思路 把list分一半 把後半的指針全部反轉 計算所有組的總和取最大 Code網友解答 class Solution { public int pairSum(ListNode head) { ListNode slow = head; ListNo 2024-10-02 Leetcode > Medium #Leetcode #心得 #Stack #Two Pointers #Linked List
707. Design Linked List - Medium 前往題目 思路這題就是實作linkedList,簡單但細節很多,很容易出錯 Codeclass MyLinkedList { private class Node { Node next; int val; public Node(int val) { this.next = null 2024-10-01 Leetcode > Medium #Leetcode #心得 #Linked List #Design
622. Design Circular Queue - Medium 前往題目 想法 自創node組成linkedlist 思路enQueue: 檢查是否已滿,未滿時可以加入新的node,如果是唯一一個,頭尾都是相同的node **deQueue**: 如果為空就false,否則彈出head`,並且大小減一 Code網友解答 class MyCircularQueue { int size; int maxSize; 2024-09-30 Leetcode > Medium #Leetcode #心得 #Queue #Array #Linked List #Design
1472. Design Browser History - Medium 前往題目 想法 Double linkedlist 思路簡單的一道題,但要細心 自己寫一個class,可以儲存上一個和下一個node藉此組成有雙向連接的list visit: 在尾巴加一個新的node back: 往後直到步數為零或是到頭了 forward: 往前直到步數為零或是到底了 Codeclass BrowserHistory { private class 2024-09-29 Leetcode > Medium #Leetcode #心得 #Stack #Array #Linked List #Design #Data Stream #Doubly-Linked List
160. Intersection of Two Linked Lists - Easy 前往題目 想法 Hashset Two pointers 思路 兩個指針,分別給a和b 循環直到這兩個指針指向同一個元素 每次循環都檢查是否指到null,是的話就代表這個list比較短,所以該指針移到另一個list的開頭(如此一來就可以完美解決兩個list長度不一的問題,因為短的會多走一點路等長的追上來) Code網友解答(內含圖解) public class Solution { 2024-09-27 Leetcode > Easy #Leetcode #心得 #Two Pointers #Hash Table #Linked List
367. Valid Perfect Square - Easy 前往題目 想法 經典的Binary Search 思路 經典Binary Search Codeclass Solution { public boolean isPerfectSquare(int num) { int l = 1, r = num; while (l <= r) { in 2024-09-27 Leetcode > Easy #Leetcode #心得 #Math #Binary Search
2300. Successful Pairs of Spells and Potions - Medium 前往題目 想法 暴力解很直觀 可以先排序,這樣就可以用Binary Search找那個最弱的藥水 思路 排序藥水,從大到小 一個咒語一個咒語循環 每個咒語都用二元搜尋去找第一個success的藥水,找到就可以知道總共有幾個藥水可以成功 每個咒語都檢查過就可以得到答案 Code網友解答 class Solution { public int[] successfulPairs 2024-09-25 Leetcode > Medium #Leetcode #心得 #Array #Two Pointers #Sorting #Binary Search
977. Squares of a Sorted Array - Easy 前往題目 想法 暴力解也只要n + nlognhe 思路 雙指針,從大排到小,因為這樣左右指針可以在最左和最右 Code class Solution { public int[] sortedSquares(int[] nums) { int[] res = new int[nums.length]; int 2024-09-25 Leetcode > Easy #Leetcode #心得 #Array #Two Pointers #Sorting