219. Contains Duplicate II - Easy 前往題目 想法 Sliding window 思路 走訪nums 使用sliding window,用hashset記錄數字 當window大於k,移除左指針數值,並且移動左指針 如果找到重複的數字,就回傳true Code class Solution { public boolean containsNearbyDuplicate(int[] nums, int k) 2024-07-12 Leetcode > Easy #Leetcode #心得 #Array #Hash Table #Sliding Window
1578. Minimum Time to Make Rope Colorful - Medium 前往題目 想法 雙指針 思路 雙指針,循環整個字串 每次循環檢查字符是否相同 相同時紀錄所需時間,移動左指針 不同時只移動指針 Code class Solution { public int minCost(String colors, int[] neededTime) { int l = 0, r = 1; int res 2024-07-10 Leetcode > Medium #Leetcode #心得 #String #Array #Greedy #Dynamic Programming
1750. Minimum Length of String After Deleting Similar Ends - Medium 前往題目 想法 雙指針 思路 雙指針,指向兩端 當l指針小於r,也都指向同樣的字符,持續循環 每個循環都盡可能的移動左指針和右指針 輸出剩下幾個字符 Codeclass Solution { public int minimumLength(String s) { int l = 0, r = s.length() - 1; // 2024-07-09 Leetcode > Medium #Leetcode #心得 #String #Two Pointers
1984. Minimum Difference Between Highest and Lowest of K Scores - Easy 前往題目 想法 雙指針 思路 排序後,左右鄰居都是最靠近自己的 根據k定義sliding window雙指針 疊代整個陣列找出最小值 Codeclass Solution { public int minimumDifference(int[] nums, int k) { Arrays.sort(nums); 2024-07-09 Leetcode > Easy #Leetcode #心得 #Array #Sorting #Sliding Window
1768. Merge Strings Alternately - Easy 前往題目 想法 雙指針直接輪流把string拼起來 思路 雙指針 word1 word2交替拼接 最後檢查是否有剩餘字母 回傳結果 Codeclass Solution { public String mergeAlternately(String word1, String word2) { StringBuilder res = new Str 2024-07-05 Leetcode > Easy #Leetcode #心得 #String #Two Pointers
88. Merge Sorted Array - Easy 前往題目 想法 雙指針 思路只要把nums1真正的數字們複製到一個新的陣列就很好操作了,這個操作時間只要+m次 把nums1真正的數字複製到新的陣列 三個指針分別指向:新的nums1陣列、原nums1、nums2 疊代原先的nums1陣列 每次用雙指針比較數字,並放入nums1 不難的題目,但是寫條件的時候要小心 Codeclass Solution { public v 2024-07-05 Leetcode > Easy #Leetcode #心得 #Array #Two Pointers #Sorting
7個好的API應該有的設計 1. Use clear naming例如: http://example.com/api/v1/carts/123 而不要 http://example.com/api/v1/cart/123 因為是一個集合的資料,而不是單個,這樣比較合乎邏輯 2. Ensure reliability through idempotent API無論執行多少次相同操作都要產生相同結果,避免問題產生 2024-07-04 #API #System Design
779. K-th Symbol in Grammar - Medium 前往題目 想法 Recursion? 思路把圖畫出來會發現是一個類似樹的結構,可以判斷是在左分支還是右分支每次都去除一半,直到k層 左右雙指針 疊代n-1次,因為第一次是起始點0,所以跳過 每次決定中點 並判斷k是否在中點的左邊或右邊 在左邊的話會和之前的數字一樣,而右邊會和之前的相反 最後直接輸出數字 /* 0 0 1 以及 1 1 0 可以看到左邊都和上面的數字一樣,右邊都和上面的 2024-07-04 Leetcode > Medium #Leetcode #心得 #Recursion #Math #Two Pointers #Bit Manipulation
2108. Find First Palindromic String in the Array - Easy 前往題目 想法 雙指針,每個單字都檢查一遍 思路秒殺題 雙指針,每個單字都檢查一遍 Codeclass Solution { public String firstPalindrome(String[] words) { // 疊代每個單字 for (String word : words) { 2024-07-04 Leetcode > Easy #Leetcode #心得 #String #Array #Two Pointers
1662. Check If Two String Arrays are Equivalent - Easy 前往題目 想法 雙指針,一對一對比較 思路自己寫出來了,不過應該可以再更簡潔一點,麻煩的就是出界問題而已 疊代所有word直到有一方或雙方都出界 每次都檢查是否為相同字母 相同就字母指針往前 檢查字母指針是否出界,如果出界就移動word指針,並且歸零字母指針 Codeclass Solution { public boolean arrayStringsAreEqual( 2024-07-04 Leetcode > Easy #Leetcode #心得 #String #Array