692. Top K Frequent Words - Medium 前往題目 想法 只知道八成需要hashmap,sorting的部分沒有想到什麼好方法 思路 Hashmap紀錄每個詞出現的頻率 根據題目條件排序,同樣頻率的詞照首字母排序,然後頻率由高到低排序 Codeclass Solution { public List<String> topKFrequent(String[] words, int k) { 2023-12-08 Leetcode > Medium #Leetcode #心得 #String #Hash Table #Sorting
57. Insert Interval - Medium 前往題目 這題之前做過,所以照搬一下 想法 這題卡在不知道如何處理interval重疊的問題 但其實很簡單,因為有重疊的部分只要取左值最小與右值最大就可以了,用以下兩個語句 newInterval[0] = Math.min(currInterval[0], newInterval[0]); // Merge the interval newInterval[1] = Math.max(cur 2023-12-06 Leetcode > Medium #Leetcode #心得 #Array
Flask實作單用戶登入-擴展原有project 擴展之前做的project,加上單用戶登入認證才能看到網頁內容以及登出功能,並參考教程開發 最新教程在這裡: Flask 入门教程3.0 (2022/07/16發布) 目標 網頁供單人使用 輸入帳號密碼驗證後才能進入並使用網頁 前置作業 只要是python程式碼就寫在app.py 首先定義一下Model class以儲存帳號 2023-12-06 Project #Flask #HTML #CSS #網頁開發 #Flask-Login #Jinja2
287. Find the Duplicate Number - Medium 前往題目 想法 毫無想法,因為不能動array,然後一定要constant time 思路這題連neetcode大大都說討厭,這是我第一次聽到他說不喜歡題目🤣總之就是一個沒看過的人根本就幾乎不可能30分鐘內想出來的問題 Linked List cycle 快慢指針 Floyd's algo. Code這題背就對了 詳細解釋可以看Neetcode大大的影片或是討論區 class 2023-12-06 Leetcode > Medium #Leetcode #心得 #Two Pointers #Floyd's Alogrithm
235. Lowest Common Ancestor of a Binary Search Tree - Medium 前往題目 想法 這題之前寫過,這次嘗試寫出來但只對了一半,有冗餘條件 思路這題重點就只有條件,看出條件就解出來了 因為BST的特性所以: 當p和q的值大於root,就要往右邊找,因為一定在右邊;反之,往左邊找 當p和q不是都大於或小於root的值就代表找到那個LCA了 Codeclass Solution { public TreeNode lowestCommonAnc 2023-12-05 Leetcode > Medium #Leetcode #心得 #Binary Tree #Tree
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