217. Contains Duplicate - Easy 前往題目 之前寫的文章 思路 使用HashSet Codeclass Solution { public boolean containsDuplicate(int[] nums) { Set<Integer> set = new HashSet<>(); for (int num : nums) { 2024-04-03 Leetcode > Easy #Leetcode #心得 #Array #Hash Table #Sorting
2215. Find the Difference of Two Arrays - Easy 前往題目 想法 用兩個set,各自裝nums1和nums2的元素,然後利用.contains來查看另一個是否也有,沒有的話就加到答案裡 思路同想法 Codeclass Solution { public List<List<Integer>> findDifference(int[] nums1, int[] nums2) { 2024-04-02 Leetcode > Easy #Leetcode #心得 #Array #Hash Table
724. Find Pivot Index - Easy 前往題目 想法 算出每個點的左邊sum,以及右邊sum,最後再看是否有一樣的即可 思路同想法 Codeclass Solution { public int pivotIndex(int[] nums) { int[] sumLeft = new int[nums.length]; int[] sumRight = new int[n 2024-04-02 Leetcode > Easy #Leetcode #心得 #String #Two Pointers #String Matching
448. Find All Numbers Disappeared in an Array - Easy 前往題目 想法 用個set或陣列之類的存,最後再看一遍缺了哪個 如果使用傳進來的nums[]不知道該怎麼做才能O(1)空間 思路Time: O(n)Space: O(1) 疊代所有陣列中的數字,把數字當作index,標記該index的數字為負數 遇到負數就跳過 最後疊代一次1~n看原本的陣列裡面哪個index的數字是正數,就是缺失的數字 Code簡易版 class Solution 2024-03-30 Leetcode > Easy #Leetcode #心得 #Array #Hash Table
535. Encode and Decode TinyURL - Medium 前往題目 想法 直接產出隨機字串,然後把longUrl和code做連結 思路encode: 檢查是否該longUrl已經在資料庫,有的話回傳對應的code 沒有的話產生一個code,並且檢查是否有重複的,有的話重新生成 存到map裡 decode: 回傳對應的longUrl Codepublic class Codec { // shortUrl -> long 2024-03-29 Leetcode > Medium #Leetcode #心得 #String #Hash Table #Design #Hash Function
1396. Design Underground System - Medium 前往題目 想法 用OOP解 思路 乘客class,紀錄checkin和checkout時間地點 路線class, 紀錄起站終站以及總共花費時間和次數 用Map把id和乘客連接起來,路線和路線class連接起來 checkin:把乘客資訊加入即可 checkout:把乘客checkout,更新或加入路徑,最後移除乘客資訊,因為checkout了 average:直接找到該路徑,然後調用路徑cl 2024-03-28 Leetcode > Medium #Leetcode #心得 #String #Hash Table #Design
1603. Design Parking System - Easy 前往題目 想法 直接陣列存 思路 定義一個陣列,放上每個size的車格剩多少 加入車輛的時候如果遇到該車格已經沒了就直接回傳false 否則就加入車輛,此時要把對應車格減1 Codeclass ParkingSystem { int[] park; public ParkingSystem(int big, int medium, int small) { 2024-03-28 Leetcode > Medium #Leetcode #心得 #Simulation #Design #Counting
104. Maximum Depth of Binary Tree - Easy 前往題目 之前寫的文章 思路這題有好多種寫法,光是DFS就可以寫成幾個不同的樣子 邊走邊紀錄深度 Code自己寫的 class Solution { int res = 1; public int maxDepth(TreeNode root) { if (root == null) return 0; 2024-03-23 Leetcode > Easy #Leetcode #心得 #Binary Tree #Depth-First Search #Breadth-First Search #Tree
5. Longest Palindromic Substring — Medium 前往題目 之前寫的文章 思路 2 pointers 每個index都當是中心點向左右擴散 奇偶分開處理 Codeclass Solution { public String longestPalindrome(String s) { int resL = 0, resR = 0; int resLen = resR - resL + 2024-03-23 Leetcode > Medium #Leetcode #心得 #String #Dynamic Programming
705. Design HashSet - Easy 前往題目 想法 和hashmap異曲同工之妙 思路簡單版:和hashmap那題一樣用同樣大小的array 進階版:也和hashmap那題一樣,用ListNode和chaining Code簡單版 class MyHashSet { boolean[] set; public MyHashSet() { set = new boolean[ 2024-03-22 Leetcode > Easy #Leetcode #心得 #Array #Hash Table #Linked List #Design #Hash Function