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

19. Remove Nth Node From End of List - Medium

前往題目 想法 第一個想法是從頭到尾看有幾個,然後maintain一個集合,紀錄順序,但這樣會需要O(n)空間複雜,但時間也是O(n) 還是先從頭到尾看幾個,然後一個新的linkedlist是反向連接的,這樣反過來要找的時候就可以直接找了,因為原始的linkedlist是正向的,但是這樣空間也是O(n)吧,好像不管如何就是需要O(n) 對了,還要remove,然後回傳原始的head 思路重點:
2023-12-05
Leetcode > Medium
#Leetcode #心得 #Two Pointers #Linked List

417. Pacific Atlantic Water Flow - Medium

前往題目 想法 用DFS但不知道該怎麼處理重複visit的部分,不處理的話就會變成$O(M*N)^2$ 思路 從上下左右開始往內檢查,因為上下左右一定可以碰到其中一個海洋,或甚至兩個海洋都碰到 每個cell都檢查其是否比前一個cell大,是的話就標記為true,不是的話直接return。因為這代表當前cell沒辦法流過前一個cell 最後看哪些cell能碰到兩個海洋就是答案 這題我覺得蠻難的
2023-12-04
Leetcode > Medium
#Leetcode #心得 #Matrix #Depth-First Search #Breadth-First Search

用Flask寫一個手動儲存觀看紀錄的網頁的開發日誌

方便自己整理所有的觀看紀錄,無論是動漫、電影、還是劇 有什麼用? 純粹我自己會在各種網站上看電影、動漫等等的,但有些網頁會記錄,下次登入紀錄又沒了。又或者是例如有些漫畫網站,手機和電腦瀏覽的紀錄又不同,久了沒看,回來要再看的時候就又忘了看到哪,翻半天。總之呢,做這個project的目的,就是解決這個我一直想開發的工具,順便玩玩網頁。 網路上找不到相似的工具,可能有很多替代方案,例如純手寫就是一
2023-12-03
Project
#Flask #CRUD #HTML #CSS #網頁開發

211. Design Add and Search Words Data Structure - Medium

前往題目 想法 可搜尋字詞功能我第一個想法是建構一顆樹(Trie),字母連著字母 這題是資料結構,比較好玩一點😆 思路 Trie的資料結構,用array儲存字母,因為固定最多26個 加入就直接判斷有沒有該字母,沒有的話init.有的話直接略過,看下一個 Search用Backtracking的方式加入帶有.的詞 比較妙的是backtracking的部分,參照以下的code可以看到,遇到.的
2023-12-02
Leetcode > Medium
#Leetcode #心得 #String #Depth-First Search #Trie

152. Maximum Product Subarray - Medium

前往題目 想法 毫無想法,每次看到這種subarray都覺得是不是backtracking🤣 思路這題的解法也很妙 使用min和max紀錄每個點的當前最小值和最大值,紀錄最小值的原因是有可能遇到負數,但如果再遇到一個就會變成正數,所以也要考慮進去 疊代nums,每個迴圈都判斷是否有更小和更大的值 這題蠻不像DP,但他的確是DP🥺 Codeclass Solution {
2023-12-01
Leetcode > Medium
#Leetcode #心得 #Array #Dynamic Programming

49. Group Anagrams - Medium

前往題目 想法 回傳包含arraylist的arraylist 用hashmap arraylist存放每個詞的hashmap,但這樣會有個問題,假設不是同個詞,那要怎麼新增,用一個temp hashmap嗎@@ 思路兩種主要方式: 把string都sort過,同一個詞一定會排序相同,就可以成功分類,但執行時間是O(m * nlogn),因為有m個string,sort要花nlogn時間
2023-12-01
Leetcode > Medium
#Leetcode #心得 #String #Array #Hash Table #Sorting

36. Valid Sudoku - Medium

前往題目 想法 每行每列檢查 3 x 3的格子因為總數不變所以可以定位每個大格的中間格,藉此來判斷他周圍的格子 思路不知道會不會有更好的辦法,所以看了Neetcode大大的解法,差不多,但3 x 3判斷的部分我沒想到,非常簡潔明瞭 使用Set來儲存每個row、column和3 x 3格子裡 包含的數 檢查所有格子,每次檢查時都檢查其行和列還有所屬3 x 3格子中是否invalid Co
2023-11-30
Leetcode > Medium
#Leetcode #心得 #Array #Hash Table #Matrix

Algorithms Part 1 - Week 3–5之Quick-select筆記

功能: 從N個itmes中找到第k小的item 想法切開陣列a使其 a[j]左邊的items都比他小 a[j]右邊的items都比他大 在一個subarray裡重複select步驟直到j = k public static Comparable select(Comparable[] a, int k) { StdRandom.shuffle(a); int lo
2023-11-28
Algorithms
#Algorithms #筆記 #演算法 #Quick select

Algorithms Part 1 - Week 3–4之Quicksort筆記

Free online course presented by Robert Sedgewick and Kevin Wayne 20世紀十大演算法之一 廣泛運用在各個方面 來一件Quicksort T-shirt也蠻酷的🤣但這件寫得不是很優喔,居然用(left + right) / 2,不怕overflow嗎😂 Quicksort基本想法 array洗牌 切開array,在ind
2023-11-28
Algorithms
#Algorithms #筆記 #演算法 #Quicksort

31. Next Permutation - Medium

前往題目 想法 這題忙了兩三天才回來再研究,沒什麼想法 思路這題最優解實作不難,但原理難證明,也不想花時間看了 從後往前看遇到不是遞增的數,就是pivot,例如1543,那1就是pivot 如果都是遞增,那就直接reverse就是答案,例如54321,這就是最大的數了,下一個就是重新開始,變成12345 在Pivot之後的數列從後往前找尋第一個比pivot大的數,和他交換位置 最後反轉整個p
2023-11-28
Leetcode > Medium
#Leetcode #心得 #Array #Two Pointers
1…313233343536

搜尋

Hexo Fluid