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

2348. Number of Zero-Filled Subarrays - Medium

前往題目 想法 想法大致和以下答案一樣,但有點複雜(例如n個連續零,就加上n + n - 1 + n - 2 + ... + 0) 思路 走過所有數字 每次遇到0,計數器+1,result直接加上當前zero的數量 因為如果00,subarray有1+2個;000,subarray有1+2+3個,以此類推 Code class Solution { public long
2024-05-30
Leetcode > Medium
#Leetcode #心得 #Array #Math

2001. Number of Pairs of Interchangeable Rectangles - Medium

前往題目 想法 只能往後找相同ratio 思路關鍵點是遇到當前ratio,直接加上之前走過的相同ratio數量 走過所有num 計算當前ratio 加上這個ratio的數量(因為是往前搭配),並且更新此ratio的數量 還有另一種做法是利用數學公式,但那樣就太specific的解法,所以選擇general的 Code class Solution { public lo
2024-05-30
Leetcode > Medium
#Leetcode #心得 #Array #Math #Hash Table #Counting #Number Theory

665. Non-decreasing Array - Medium

前往題目 想法沒想法的一題,看起來很簡單,不過有好多edge case要考慮 思路 走過所有num 兩兩一組看,non-decreasing的話就直接continue 如果已經用了一次change就回傳false 如果當前的下一個比當前的上一個還大,那當前的就變成和下一個一樣大就可以了,例如3, 5, 4 反之,下一個變得和當前一樣大就可以,例如4, 5, 3 Code class Solu
2024-05-29
Leetcode > Medium
#Leetcode #心得 #Array

496. Next Greater Element I - Easy

前往題目 想法 暴力解,用hashmap然後在nums2一個一個看 思路 用hashmap儲存nums1中num和index的映射 疊代nums2 每次都檢查是否比stack的最上層還要大,如果是的話就pop,然後繼續比下一個上層,直到stack沒東西或是沒有比他大了,然後每次操作都要把該num放到相對應的index(藉助hashmap可以得知) 最後如果當前數字有在nums1裡面代表需要找尋
2024-05-25
Leetcode > Easy
#Leetcode #心得 #Stack #Array #Monotonic Stack #Hash Table

2483. Minimum Penalty for a Shop - Medium

前往題目 想法 sliding windows? 要看有幾個n幾個y 思路實際上就是算出每個位置的prefix_n和postfix_y,因為沒有客人來沒有關店會penalty,相反的,有客人卻已經關店也要penalty 紀錄prefix_n,但不用包含當前 紀錄postfix_y,要包含當前 然後再疊代每個位置,把prefix和postfix加起來找出最小值,並回傳其index Code
2024-05-24
Leetcode > Medium
#Leetcode #心得 #String #Prefix Sum

1963. Minimum Number of Swaps to Make the String Balanced - Medium

前往題目 想法 Stack? 思路這題可以一次換兩個,為一個swap 疊代所有字符 看到[就+1 看到]就判斷是否size大於0,-1 如此一來剩下的就換是錯位的括號有幾個了 Codeclass Solution { public int minSwaps(String s) { int sSize = 0; /
2024-05-23
Leetcode > Medium
#Leetcode #心得 #Stack #String #Two Pointers #Greedy

2002. Maximum Product of the Length of Two Palindromic Subsequences - Medium

前往題目 思路Brute force 循環把所有mask都走過一遍,有Match就保留 只留下是palindrome的 嵌套疊代,把兩個match的mask計算長度,放入結果,取最大值 這題用mask,比較難一下就看懂在幹麻 Code class Solution { public int maxProduct(String s) { int n
2024-05-18
Leetcode > Medium
#Leetcode #心得 #String #Dynamic Programming #Bit Manipulation #Backtracking #Bitmask

1189. Maximum Number of Balloons - Easy

前往題目 想法 用hashmap紀錄頻率 疊代balloon直到遇到字母數量為0或是null 思路Code自己的解 class Solution { public int maxNumberOfBalloons(String text) { Map<Character, Integer> map = new HashMap();
2024-05-10
Leetcode > Easy
#Leetcode #心得 #String #Hash Table #Counting

58. Length of Last Word - Easy

前往題目 想法 trim前後 雙指針直到最後一個word 思路雖然自己寫出來了,但看了neetcode大大的解法覺得更好 從後面開始,跳過所有空格 遇到字之後繼續往前並紀錄走過幾個字 再次遇到空格時就是完成紀錄,直接回傳字數 Code自己寫的部分,用到trim然後把每個字都走過一遍直到最後一個 class Solution { public int lengthOfLas
2024-05-09
Leetcode > Easy
#Leetcode #心得 #String

205. Isomorphic Strings - Easy

前往題目 思路 把s和t位置相對應的字符的位置存起來 如果存起來的位置不符,就代表沒辦法直接替換 位置都相符就代表可以直接替換 我覺得可以理解為,同樣位置的要視為同一個字符,所以一種字符不能有兩種位置 Codeclass Solution { public boolean isIsomorphic(String s, String t) { int[
2024-05-08
Leetcode > Easy
#Leetcode #心得 #String #Hash Table
1…1213141516…36

搜尋

Hexo Fluid