Wendy

@wendyusinggithub

Joined on Sep 6, 2022

  • 1 - 100 1. Two Sum 2. Add Two Numbers 3. Longest Substring Without Repeating Characters 5. Longest Palindromic Substring 6. Zigzag Conversion 7. Reverse Integer 8. String to Integer (atoi) 9. Palindrome Number
     Like  Bookmark
  • Notes vector 裡存的是路徑行經的檔案夾名稱 往下一層資料夾往下走就 push 進 vector 如果遇到 .. 就把尾端的檔案夾名稱 pop 掉 Code #include <vector> #include <string> #include "cout.h"
     Like  Bookmark
  • Notes 向右轉 k 個代表倒數第 k 個 node 要做新的 head 第 k - 1 個 node 要成為新的尾端, next 指向 null 原本的尾端變成一個普通的 node, next 指向原本的 head Code #include "cout.h" ListNode* rotateRight(ListNode* head, int k);
     Like  Bookmark
  • Notes 使用 DP + memo 可以避免重複計算 memo[x][y] 指的是從位置 (0, 0) 到位置 (x, y) 所需要花費的最少的錢 Code #include <vector> #include <algorithm> #include <climits> #include "cout.h"
     Like  Bookmark
  • Notes 如果只用單純的 recursive 會超時 使用 DP + memo 可以避免重複計算 memo[x][y] 指的是從位置 (0, 0) 到位置 (x, y) 有幾種到達方法 你可能有多種不同路徑可以從 (m-1, n-1) 到達 (x, y) 但只要第一次算出 memo[x][y] 之後就知道,到這個位置之後有幾種方法可以到 (0, 0) 假設有 a 種方法從 (m-1, n-1) 到達 (x, y)
     Like  Bookmark
  • Notes 若長 3 寬 5 目標是走到右下角 代表要向下走 2 步 向右走 4 步 什麼時候向下或什麼時候向右不重要 因為任何時候都可以自由選擇向下或向右 因此 C 6 取 2 或說是 C 6 取 4 即是答案 Code
     Like  Bookmark
  • Note 在寫給 sort 使用的函數 comp 的時候,如果是兩個相同的物件,必須回傳 false 原因不明,是 stl 的某種隱晦規定 = example 1 = step 1 : currentInterval = 0 mergeLeft = 1 mergeRight = 3
     Like  Bookmark
  • Notes 把矩陣轉置然後後鏡像 Code #include <vector> #include "cout.h" void rotate(vector<vector<int>>& matrix); int main()
     Like  Bookmark
  • Notes = example 1 = index 0 1 2 3 4 {1,2}, {3,5}, {6,7}, {8,10}, {12,16} step 1 : currentInterval = 0 result : {1, 2}
     Like  Bookmark
  • Notes 如果每一步的位置都只能到達 steps 的數字 就不能貪婪 因為會錯過最好的那條路 但是現在每一步可以到達 1 ~ steps 的數字 如果我們選擇最貪婪的選項 他可以到達所有其他人可以到達的位置 所以你不會錯過任何路 = example 1 =
     Like  Bookmark
  • Code #include <string> #include <iostream> using namespace std; int lengthOfLastWord(string s); int main() { string s = "Hello World ";
     Like  Bookmark
  • Code #include <iostream> #include "cout.h" vector<vector<int>> generateMatrix(int n); int main() { coutVectorVector(generateMatrix(4)); return 0;
     Like  Bookmark
  • Notes = exmaple 1 = matrix = { 1, 2, 3, 4 5, 6, 7, 8 9, 10, 11, 12 }
     Like  Bookmark
  • Notes 陣列 maxValue 代表的是 如果 subarray 在結束在某個 index 那獲得的最大 value 數值 每一個 index 可能從兩個方向取得最大數值 如果 maxValue[index - 1] 是一個負數 那和他串連起來沒有任何幫助 我們自己一個人就好
     Like  Bookmark
  • Notes 資料結構經典題目 需要注意的是 因為 INT_MIN 在轉為正數時會超過 INT_MAX 所以要特別用一個 if 處理 Code #include <iostream> #include <climits> using namespace std;
     Like  Bookmark
  • Notes 用 hash table 把易位構詞存在同一個 key 之下 Code #include <vector> #include <string> #include <algorithm> #include <unordered_map> #include "cout.h"
     Like  Bookmark
  • Notes 要找最短距離 因此使用 BFS 把 queue 裡面的位置 pop 出來處理 處理完之後把這個位置可以通往的下一個位置 push 進 queue 裡 需要注意的是 單純使用 BFS 會得到 time limit excced 還需要維護一個陣列紀錄已經被踩過的位置 因為如果有一個位置已經被踩過
     Like  Bookmark
  • Notes 手算怎麼算 程式怎麼寫 Code #include <vector> #include <string> #include "cout.h" string multiply(string num1, string num2);
     Like  Bookmark
  • Notes 題目要用某些數字組出一個目標數字 看起來是 backtrack 但是不能有組成相同的組合出現 也不能使用重複的 element = example 1 = 首先要對陣列進行 sort 這裡 sort 的目的不是排大小
     Like  Bookmark
  • Notes 題目要用某些數字組出一個目標數字 看起來是 backtrack 但是他要求不能有組成相同的組合出現 = example 1 = candidates = {2, 3, 6, 7} 假如一個 result 在第一輪已經選了 3 那在接下來這一輪
     Like  Bookmark