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

1888. Minimum Number of Flips to Make the Binary String Alternating - Medium

前往題目 想法 Sliding window 思路 原本的字串加上自己,這樣走過所有window等於把所有s的可能性都走過了 另外準備兩個字串alt1和alt2,與s等長,是alternating binary string sliding window從s最左邊開始,與alt1以及alt2相比,紀錄有多少個不同(diff) 每次循環如果超過s的長度,縮小 如果和s等長,紀錄diff最小值
2024-07-22
Leetcode > Medium
#Leetcode #心得 #String #Greedy #Dynamic Programming #Sliding Window

1456. Maximum Number of Vowels in a Substring of Given Length - Medium

前往題目 想法 雙指針,sliding window 思路 左右指針 每個循環都檢查右指針的字是不是母音 是的話增加count 超出k時縮短窗口 更新最大count Code class Solution { public int maxVowels(String s, int k) { int l = 0; int count
2024-07-18
Leetcode > Medium
#Leetcode #心得 #String #Sliding Window

904. Fruit Into Baskets - Medium

前往題目 想法 找連續最多的區間,但可以容忍有一種不一樣的 思路sliding window的一大重點: shrink 右指針疊代整個陣列,左指針視情況移動 每次疊代都把當前水果放入籃子 如果invalid,shrink直到valid 更新長度 結束疊代回傳結果 Code class Solution { public int totalFruit(int[] frui
2024-07-16
Leetcode > Medium
#Leetcode #心得 #Array #Hash Table #Sliding Window

1838. Frequency of the Most Frequent Element - Medium

前往題目 想法 Sliding window 思路 排序,由小到大 左右指針都從0開始 每次紀錄當前總數 當window不合法時要移動左指針 如果當前window較大,選擇其為新的最大值 每個循環都移動右指針 這題的關鍵是如何判斷window不合法 Code class Solution { public int maxFrequency(int[] nums, int
2024-07-15
Leetcode > Medium
#Leetcode #心得 #Array #Greedy #Sorting #Binary Search #Sliding Window #Prefix Sum

2962. Count Subarrays Where Max Element Appears at Least K Times - Medium

前往題目 想法 先找出最大值 Sliding window 思路 先找到最大值 以右指針疊代整個陣列 遇到最大值,計數+1 與左指針維持合法的window,不合法就要移動左指針直到合法 當window的最大值有k個,紀錄有幾個subarray 這題在最後卡很久,原來是要用long回傳 Code class Solution { public long countSubar
2024-07-14
Leetcode > Medium
#Leetcode #心得 #Array #Sliding Window

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
1…1011121314…36

搜尋

Hexo Fluid