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

136. Single Number - Easy

前往題目 思路 XOR最後就會剩下單獨的元素 Code class Solution { public int singleNumber(int[] nums) { int res = 0; for (int num : nums) { res ^= num; }
2024-01-05
Leetcode > Easy
#Leetcode #心得 #Array #Bit Manipulation

215. Kth Largest Element in an Array - Medium

前往題目 想法 只想得到用sort之後🤣 思路 用Priority queue,默認是從小到大,所以超過k個數字的時候把top去掉就好,最後會剩下最小到第k大的元素 或是QuickSelect: 平均O(N),但是最差情況是$O(N^2)$ Code class Solution { public int findKthLargest(int[] nums, int k
2024-01-05
Leetcode > Medium
#Leetcode #心得 #Array #Sorting #Heap #Priority Queue #Divide and Conquer #Quickselect

528. Random Pick with Weight - Medium

前往題目 想法 題目要求每次pickIndex的時候都根據機率return數值,例如[1,3]那return 1的機率就是$1 / (1 + 3)$,return 3的機率是$3 / (1 + 3)$ 但是讓我困惑的是要怎麼根據機率return。算機率很簡單,只要弄個hashmap把每個機率存下來就好了;或是存sum,然後直接算也很快 思路這題很妙…解法也有些不懂的地方 大
2024-01-04
Leetcode > Medium
#Leetcode #心得 #Array #Math #Binary Search #Prefix Sum #Randomized

如何準備面試中的Technical Questions - Cracking the Coding Interview

如何準備 P.60 記答案沒有用,練習如何解題目才是重中之重 四大步驟 盡量自己解決問題(但這裡我私心覺得如果沒寫過甚麼leetcode的話還是不要糾結太久,因為很多演算法是自己想破頭腦都想不出來的,不如趕快看解答,認識解法,知道怎麼解,等到累積了一定的解法之後再嘗試自己解決問題。不過當然不是一開始就看答案,而是思考個五分鐘十分鐘,沒想法再看),要考慮空間和時間複雜度 把code寫在紙上 在紙
2024-01-03
面試
#筆記 #Interview

735. Asteroid Collision - Medium

前往題目 想法 小行星相撞有可能會消失,如果一方比較大;如果一樣大兩個都會消失。這樣來看的話可能需要一個額外的array,不然會有空位而且還要移動element 思路快解出來了,但時間用得有點久,還是看看neetcode大大怎麼寫的 其實蠻簡單的,只要列出判斷條件和使用stack就可以輕鬆解 疊代每個行星 每次疊代都檢查是否與最近一個行星相撞,把兩數加起來就可以很快判斷誰大誰小或是相等 相撞
2024-01-03
Leetcode > Medium
#Leetcode #心得 #Stack #Array #Simulation

560. Subarray Sum Equals K - Medium

前往題目 想法 Subarray的話應該還是需要backtracking 思路這題反而不用backtracking,而是用prefix sum 一個prefix sum表,紀錄每個sum出現的次數 每次都看當前需要多少才能達到k,檢查表中有沒有該sum,有的話就可以直接加到result了因為代表前面的這個sum再加上當前index的數值就等於我們要的k 出現新的sum就放到表中 這部分照著
2024-01-01
Leetcode > Medium
#Leetcode #心得 #Array #Hash Table #Prefix Sum

用hexo建置網站以及日常操作筆記

建站好一陣子了,現在才回來寫筆記,可能有遺漏,歡迎留言 安裝hexo 安裝Nodejs和git(方便上傳github並建置網站) terminal裡執行安裝 npm install hexo-cli -g 在想安裝的資料夾底下初始化hexo blog,等於直接在該資料夾下新建網站了 hexo init blog cd blog 進入網站資料夾 hexo server在本機執行網站 he
2023-12-30
綜合
#hexo

Java常用資料結構和用法集合

主要是蒐集寫Leetcode或是日常開發的時候使用的資料結構,以及其用法,免得每次都要google,然後永遠搞不清楚到底要用add還是append ArrayListimport java.util.ArrayList; // import the ArrayList class ArrayList<String> cars = new ArrayList<String>();
2023-12-30
Java > Data Structure
#Java #Data Structure

148. Sort List - Medium

前往題目 想法 全部存下來,然後排序完再重新連接,但這樣就至少O(2n + nlogn)也是挺暴力了的😂 思路這題的思路很簡單,但是指針操作一樣很容易搞混😂 把list分成左半部和右半部 利用mergesort把左半和右半排序好 最後再把左右合併 Linked List找中心點的方法 private ListNode getMid(ListNode head) { /
2023-12-30
Leetcode > Medium
#Leetcode #心得 #Two Pointers #Sorting #Linked List #Merge Sort #Divide and Conquer

22. Generate Parentheses - Medium

前往題目 想法 一樣想說要用stack,但是如何使用想不出來 思路 使用backtracking,才能得到所有組合 每次backtrack都檢查(的數量是否小於n,是的話就加上 只有當)的數量小於(的時候才加上) 當)和(的數量等於n的時候才加入到結果裡 backtracking依然很難在腦袋裡運轉… Code 使用stack的寫法 class Solution { Li
2023-12-29
Leetcode > Medium
#Leetcode #心得 #String #Dynamic Programming #Backtracking
1…2728293031…36

搜尋

Hexo Fluid