├── .gitignore ├── public ├── page-data │ ├── app-data.json │ ├── index │ │ └── page-data.json │ ├── unit9 │ │ └── page-data.json │ ├── ALG101-too-weak-to-leetcode │ │ └── public │ │ │ ├── unit9 │ │ │ └── print │ │ │ │ └── page-data.json │ │ │ ├── unit7 │ │ │ └── print │ │ │ │ └── page-data.json │ │ │ ├── unit8 │ │ │ └── print │ │ │ │ └── page-data.json │ │ │ ├── unit6 │ │ │ └── print │ │ │ │ └── page-data.json │ │ │ ├── unit0 │ │ │ └── print │ │ │ │ └── page-data.json │ │ │ └── unit5 │ │ │ └── print │ │ │ └── page-data.json │ ├── unit7 │ │ └── page-data.json │ ├── unit8 │ │ └── page-data.json │ ├── unit6 │ │ └── page-data.json │ ├── unit0 │ │ └── page-data.json │ └── unit5 │ │ └── page-data.json ├── chunk-map.json ├── component---node-modules-gatsby-theme-mdx-deck-src-templates-decks-js-b4b8473d9a60847c7209.js ├── component---node-modules-gatsby-theme-mdx-deck-src-templates-decks-js-b4b8473d9a60847c7209.js.map ├── webpack-runtime-6003cebeb46fe0c228e0.js ├── ALG101-too-weak-to-leetcode │ └── public │ │ ├── unit0 │ │ └── print │ │ │ └── index.html │ │ ├── unit1 │ │ └── print │ │ │ └── index.html │ │ ├── unit2 │ │ └── print │ │ │ └── index.html │ │ ├── unit3 │ │ └── print │ │ │ └── index.html │ │ ├── unit4 │ │ └── print │ │ │ └── index.html │ │ ├── unit5 │ │ └── print │ │ │ └── index.html │ │ ├── unit6 │ │ └── print │ │ │ └── index.html │ │ ├── unit7 │ │ └── print │ │ │ └── index.html │ │ ├── unit8 │ │ └── print │ │ │ └── index.html │ │ └── unit9 │ │ └── print │ │ └── index.html ├── index.html └── webpack.stats.json ├── slides ├── logo.png ├── layout.js ├── fullscreen.js ├── unit9.mdx ├── unit0.mdx ├── unit7.mdx ├── unit8.mdx ├── theme.js ├── unit6.mdx ├── unit5.mdx └── unit3.mdx ├── unit0 ├── examples │ ├── README.md │ ├── lioj-1001.js │ └── lioj-1002.js └── README.md ├── unit2 ├── examples │ ├── print-factor.js │ ├── delete-char.js │ ├── array-second-min.js │ ├── README.md │ ├── array-sum.js │ ├── array-max.js │ ├── array-second-max.js │ ├── to-upper-case.js │ └── swap-case.js └── README.md ├── unit1 ├── examples │ ├── unit1.4.md │ ├── unit1.6.md │ ├── README.md │ ├── unit1.5.md │ └── project1.md └── README.md ├── unit6 ├── examples │ ├── repeat.js │ ├── lastIndexOf.js │ ├── map.js │ ├── lioj1045.js │ ├── lioj1042.js │ ├── lioj1038.js │ ├── lioj1036.js │ ├── lioj1039.js │ ├── lioj1037.js │ ├── lioj1043.js │ ├── lioj1041.js │ ├── lioj1044.js │ ├── lioj1040.js │ └── README.md └── README.md ├── unit4 ├── examples │ ├── nine-nine.js │ ├── stars.js │ ├── square.js │ ├── pyramid.js │ ├── prime.js │ ├── 1024.js │ ├── README.md │ ├── 1023.js │ └── 1025.js └── README.md ├── unit9 ├── examples │ ├── README.md │ ├── lioj1035.js │ ├── lioj1048.js │ └── lioj1047.js └── README.md ├── unit5 ├── examples │ ├── arr.js │ ├── sum.js │ ├── lioj1031.js │ ├── lioj1030.js │ ├── lioj1029.js │ ├── lioj1028.js │ ├── lioj1026.js │ ├── id.js │ ├── lioj1034.js │ ├── lioj1032.js │ ├── lioj1046.js │ ├── lioj1027.js │ ├── README.md │ └── lioj1033.js └── README.md ├── gatsby-config.js ├── unit3 ├── examples │ └── README.md └── README.md ├── unit7 ├── examples │ ├── npsc2019.js │ ├── lioj1009.js │ ├── lioj1014.js │ ├── npsc2008.js │ ├── README.md │ ├── lioj1013.js │ ├── lioj1016.js │ └── lioj1008.js └── README.md ├── unit8 ├── examples │ ├── README.md │ ├── lioj1035.js │ ├── lioj1051.js │ ├── lioj1050.js │ ├── lioj1049.js │ ├── lioj1047.js │ └── lioj1048.js └── README.md ├── package.json └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | .cache -------------------------------------------------------------------------------- /public/page-data/app-data.json: -------------------------------------------------------------------------------- 1 | {"webpackCompilationHash":"8165572a553362dcf585"} 2 | -------------------------------------------------------------------------------- /slides/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lidemy/ALG101-too-weak-to-leetcode/HEAD/slides/logo.png -------------------------------------------------------------------------------- /unit0/examples/README.md: -------------------------------------------------------------------------------- 1 | # Project0 參考答案: 2 | 3 | ## JavaScript 4 | 5 | 1. [LIOJ1001](lioj-1001.js) 6 | 2. [LIOJ1002](lioj-1002.js) 7 | 8 | -------------------------------------------------------------------------------- /unit2/examples/print-factor.js: -------------------------------------------------------------------------------- 1 | let num = 30 2 | for(let i=1; i<=num; i++) { 3 | if (num % i === 0) { 4 | console.log(i) 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /unit1/examples/unit1.4.md: -------------------------------------------------------------------------------- 1 | # Unit1.4:實戰練習:印出 1-100 的奇數 2 | 3 | ``` 4 | for (i from 1 to 100) do 5 | if (n mod 2 === 1) then 6 | print i 7 | end if 8 | end for 9 | ``` -------------------------------------------------------------------------------- /unit1/examples/unit1.6.md: -------------------------------------------------------------------------------- 1 | # Unit1.6:實戰練習:找最小值 2 | 3 | ``` 4 | let min = arr[0] 5 | for (i from 0 to n-1) do 6 | if (arr[i] < min) do 7 | min = arr[i] 8 | end if 9 | end for 10 | ``` -------------------------------------------------------------------------------- /unit6/examples/repeat.js: -------------------------------------------------------------------------------- 1 | function repeat(str, n) { 2 | let result = '' 3 | for(let i=1; i<=n; i++) { 4 | result += str 5 | } 6 | return result 7 | } 8 | 9 | console.log(repeat('abc', 3)) -------------------------------------------------------------------------------- /unit4/examples/nine-nine.js: -------------------------------------------------------------------------------- 1 | function printTable(k) { 2 | for (let i=1; i<=9; i++) { 3 | console.log(k + '*' + i + '=' + k*i) 4 | } 5 | } 6 | 7 | for(let k=1; k<=9; k++) { 8 | printTable(k) 9 | } -------------------------------------------------------------------------------- /unit2/examples/delete-char.js: -------------------------------------------------------------------------------- 1 | let str = "hello" 2 | let deleted = 'l' 3 | let ans = '' 4 | for(let i=0; i=0; i--) { 3 | if (arr[i] === target) { 4 | return i 5 | } 6 | } 7 | return -1 8 | } 9 | 10 | console.log(lastIndexOf([2, 1, 2], 3)) -------------------------------------------------------------------------------- /unit5/examples/arr.js: -------------------------------------------------------------------------------- 1 | // 判斷是否為等差數列 2 | function isValid(arr) { 3 | if (arr.length <= 1) return true 4 | let d = arr[1] - arr[0] 5 | for(let i=1; i max) do 29 | max = arr[i] 30 | end if 31 | end for 32 | print max 33 | ``` 34 | -------------------------------------------------------------------------------- /unit2/examples/array-sum.js: -------------------------------------------------------------------------------- 1 | let arr = [1, 2, 3] 2 | let sum = 0 3 | for(let i=0; i max) { 5 | max = arr[i] 6 | } 7 | } 8 | console.log(max) 9 | 10 | /* 11 | 12 | 1. 假設 arr 為 [2, 7, 5] 13 | 2. 設 max 為 arr[0],也就是 2 14 | 3. 讓 i 從 0 跑到 2 15 | 4. i 現在是 0 16 | 5. 判斷 arr[0] 是否 > 2 17 | 6. 不是 18 | 7. 下一圈迴圈 19 | 8. i 現在是 1 20 | 9. 判斷 arr[1] 是否 > 2 21 | 10. 是,設 max 為 arr[1],也就是 7 22 | 11. 下一圈迴圈 23 | 12. i 現在是 2 24 | 13. 判斷 arr[2] 是否 > 7 25 | 14. 不是 26 | 15. 下一圈迴圈 27 | 16. i 現在是 3,超出條件,結束 28 | 17. 輸出 max 29 | 30 | 31 | */ -------------------------------------------------------------------------------- /unit4/examples/1024.js: -------------------------------------------------------------------------------- 1 | var readline = require('readline'); 2 | var rl = readline.createInterface({ 3 | input: process.stdin 4 | }); 5 | 6 | var lines = [] 7 | 8 | rl.on('line', function (line) { 9 | lines.push(line) 10 | }); 11 | 12 | rl.on('close', function() { 13 | solve(lines) 14 | }) 15 | 16 | // 拿到所有資料 17 | function solve(lines) { 18 | let N = Number(lines[0]) 19 | let M = Number(lines[1]) 20 | for(let k=1; k<=N; k++) { 21 | for(let i=1; i<=M; i++) { 22 | console.log(k + '*' + i + '=' + k*i) 23 | // console.log(`${k}*${i}=${k*i}`) 24 | } 25 | } 26 | } 27 | 28 | -------------------------------------------------------------------------------- /unit7/examples/npsc2019.js: -------------------------------------------------------------------------------- 1 | var readline = require('readline'); 2 | var rl = readline.createInterface({ 3 | input: process.stdin 4 | }); 5 | 6 | var lines = [] 7 | 8 | // 讀取到一行,先把這一行加進去 lines 陣列,最後再一起處理 9 | rl.on('line', function (line) { 10 | lines.push(line) 11 | }); 12 | 13 | // 輸入結束,開始針對 lines 做處理 14 | rl.on('close', function() { 15 | solve(lines) 16 | }) 17 | 18 | // 上面都不用管,只需要完成這個 function 就好,可以透過 lines[i] 拿取內容 19 | function solve(lines) { 20 | let n = lines[0] 21 | if (n == 0) { 22 | console.log(1) 23 | } else if (n == 1) { 24 | console.log(2) 25 | } else { 26 | console.log(0) 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /unit8/examples/README.md: -------------------------------------------------------------------------------- 1 | # Unit8 範例 2 | 3 | ## JavaScript 4 | 5 | 1. [Unit8.3:實戰:LIOJ 1035:簡易排序](lioj1035.js) 6 | 2. [Unit8.4:實戰:LIOJ 1047:搜尋數字](lioj1047.js) 7 | 3. [Unit8.5:實戰:LIOJ 1048:最大連續和](lioj1048.js) 8 | 9 | ## Project8 10 | 11 | ### 1. LIOJ 1049:陣列最短距離 12 | 13 | 題目連結:[LIOJ 1049:陣列最短距離](https://oj.lidemy.com/problem/1049) 14 | 15 | 參考答案:[LIOJ 1049](lioj1049.js) 16 | 17 | ### 2. LIOJ 1050:two sum 18 | 19 | 題目連結:[LIOJ 1050:two sum](https://oj.lidemy.com/problem/1050) 20 | 21 | 參考答案:[LIOJ 1050](lioj1050.js) 22 | 23 | 24 | ### 3. LIOJ 1051:逆序數對 25 | 26 | 題目連結:[LIOJ 1051:逆序數對](https://oj.lidemy.com/problem/1051) 27 | 28 | 參考答案:[LIOJ 1051](lioj1051.js) 29 | -------------------------------------------------------------------------------- /unit8/README.md: -------------------------------------------------------------------------------- 1 | # Unit8:初學者只管拿分,誰管你什麼效率 2 | 3 | 這個單元會介紹一些題目,並且說明「新手求有就好」 4 | 5 | 程式速度慢沒關係,至少題目你要解的出來 6 | 未來學習演算法之後你會發現更快的解法,但那是以後的事 7 | 如果你連最基本的解法都想不出來,那你怎麼會覺得你能理解更快的解法? 8 | 9 | 所以出現在這個單元的題目,通常都有更快的解法,但是我只會示範比較直覺比較慢的。等未來學到更多東西,就會學到比較快的方法了。 10 | 11 | ## Unit8.1:淺談時間與空間複雜度 12 | ## Unit8.2:電腦比你想得厲害 13 | ## Unit8.3:實戰:LIOJ 1035:簡易排序 14 | ## Unit8.4:實戰:LIOJ 1047:搜尋數字 15 | ## Unit8.5:實戰:LIOJ 1048:最大連續和 16 | 17 | ## Unit8.6:Project8 介紹 18 | 19 | Project8 要完成一些 LIOJ 上的題目: 20 | 21 | 1. [LIOJ 1049:陣列最短距離](https://oj.lidemy.com/problem/1049) 22 | 2. [LIOJ 1050:two sum](https://oj.lidemy.com/problem/1050) 23 | 3. [LIOJ 1051:逆序數對](https://oj.lidemy.com/problem/1051) 24 | 25 | -------------------------------------------------------------------------------- /unit7/examples/lioj1009.js: -------------------------------------------------------------------------------- 1 | var readline = require('readline'); 2 | var rl = readline.createInterface({ 3 | input: process.stdin 4 | }); 5 | 6 | var lines = [] 7 | 8 | // 讀取到一行,先把這一行加進去 lines 陣列,最後再一起處理 9 | rl.on('line', function (line) { 10 | lines.push(line) 11 | }); 12 | 13 | // 輸入結束,開始針對 lines 做處理 14 | rl.on('close', function() { 15 | solve(lines) 16 | }) 17 | 18 | // 上面都不用管,只需要完成這個 function 就好,可以透過 lines[i] 拿取內容 19 | function solve(lines) { 20 | let str = lines[0] 21 | let result = '' 22 | for(let i=str.length - 1; i>=0; i--) { 23 | result += str[i] 24 | } 25 | console.log(result) 26 | // console.log(lines[0].split('').reverse().join('')) 27 | } 28 | -------------------------------------------------------------------------------- /unit7/examples/lioj1014.js: -------------------------------------------------------------------------------- 1 | var readline = require('readline'); 2 | var rl = readline.createInterface({ 3 | input: process.stdin 4 | }); 5 | 6 | var lines = [] 7 | 8 | // 讀取到一行,先把這一行加進去 lines 陣列,最後再一起處理 9 | rl.on('line', function (line) { 10 | lines.push(line) 11 | }); 12 | 13 | // 輸入結束,開始針對 lines 做處理 14 | rl.on('close', function() { 15 | solve(lines) 16 | }) 17 | 18 | // 上面都不用管,只需要完成這個 function 就好,可以透過 lines[i] 拿取內容 19 | function solve(lines) { 20 | let n = lines[0] 21 | console.log(parseInt(n, 9)) 22 | } 23 | 24 | /* 25 | 001 => 1 26 | 010 => 2 27 | 011 => 3 28 | 100 => 4 29 | 30 | 100 => 81 31 | 32 | 100 33 | 34 | 33 = 9^0*3 + 9^1*3 = 3 + 27 = 30 35 | */ 36 | -------------------------------------------------------------------------------- /unit0/examples/lioj-1002.js: -------------------------------------------------------------------------------- 1 | var readline = require('readline'); 2 | var rl = readline.createInterface({ 3 | input: process.stdin 4 | }); 5 | 6 | var lines = [] 7 | 8 | rl.on('line', function (line) { 9 | lines.push(line) 10 | }); 11 | 12 | rl.on('close', function() { 13 | solve(lines) 14 | }) 15 | 16 | // 拿到所有資料 17 | function solve(lines) { 18 | for(let i=0; i b) { 28 | console.log(a) 29 | } else { 30 | console.log(b) 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /unit4/examples/README.md: -------------------------------------------------------------------------------- 1 | # Unit4 範例 2 | 3 | ## JavaScript 4 | 5 | 1. [Unit4.2:函式填空法](prime.js) 6 | 2. [Unit4.3:簡化法](stars.js) 7 | 3. [Unit4.5:實戰:印出金字塔](pyramid.js) 8 | 4. [Unit4.6:實戰:九九乘法表](nine-nine.js) 9 | 5. [Unit4.7:實戰:印出 1-100 的平方數](square.js) 10 | 11 | 12 | ## Project4 13 | 14 | ### 1. LIOJ 1023:印出聖誕樹 15 | 16 | 題目連結:[LIOJ 1023:印出聖誕樹](https://oj.lidemy.com/problem/1023) 17 | 18 | 參考解答:[LIOJ 1023](1023.js) 19 | 20 | ### 2. LIOJ 1024:NN 乘法表 21 | 22 | 題目連結:[LIOJ 1024:NN 乘法表](https://oj.lidemy.com/problem/1024) 23 | 24 | 參考解答:[LIOJ 1024](1024.js) 25 | 26 | ### 3. LIOJ 1025:水仙花數 27 | 28 | 題目連結:[LIOJ 1025:水仙花數](https://oj.lidemy.com/problem/1025) 29 | 30 | 參考解答:[LIOJ 1025](1025.js) 31 | -------------------------------------------------------------------------------- /slides/layout.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import logo from './logo.png' 3 | 4 | export default ({ children }) => ( 5 |
8 | {children} 9 |
19 | logo 23 |

Lidemy

27 |
28 |
29 | ) -------------------------------------------------------------------------------- /unit8/examples/lioj1035.js: -------------------------------------------------------------------------------- 1 | var readline = require('readline'); 2 | var rl = readline.createInterface({ 3 | input: process.stdin 4 | }); 5 | 6 | var lines = [] 7 | 8 | // 讀取到一行,先把這一行加進去 lines 陣列,最後再一起處理 9 | rl.on('line', function (line) { 10 | lines.push(line) 11 | }); 12 | 13 | // 輸入結束,開始針對 lines 做處理 14 | rl.on('close', function() { 15 | solve(lines) 16 | }) 17 | 18 | // 上面都不用管,只需要完成這個 function 就好,可以透過 lines[i] 拿取內容 19 | function solve(lines) { 20 | let arr = [] 21 | for(let i=1; i max) { 6 | max2 = max 7 | max = arr[i] 8 | } else if (arr[i] > max2) { 9 | max2 = arr[i] 10 | } 11 | } 12 | console.log(max, max2) 13 | 14 | /* 15 | 16 | 1. 要找次大值的陣列 17 | 2. 把最大值跟次大值初始化成一個很小的數 18 | 3. 迴圈遍歷整個陣列,i 目前是 0 19 | 4. arr[0](也就是 5)是不是 > max? 20 | 5. 是,代表原本的最大值會變成次大值,而 arr[0] 變成最大 21 | 6. 下一圈迴圈,i 目前是 1 22 | 7. arr[1](也就是 8)是不是 > max? 23 | 8. 是,max2 變成 5,max 變成 8 24 | 9. 下一圈迴圈,i 目前是 2 25 | 10. arr[2](也就是 6)是不是 > max?不是 26 | 11. arr[2] 是不是 > max2? 27 | 12. 是,max2 變成 arr[2],也就是 6 28 | 13. 下一圈迴圈,i 目前是 3,超出範圍,結束 29 | 14. 印出 max 與 max2 30 | 31 | */ -------------------------------------------------------------------------------- /unit2/examples/to-upper-case.js: -------------------------------------------------------------------------------- 1 | let str = "Hi" 2 | let ans = '' 3 | for(let i=0; i= 97 && code <= 122) { 6 | ans += String.fromCharCode(code - 32) 7 | } else { 8 | ans += str[i] 9 | } 10 | } 11 | console.log(ans) 12 | 13 | /* 14 | 另一個範例: 15 | let str = "Hi" 16 | let ans = '' 17 | for(let i=0; i= 'a' && str[i] <= 'z') { 19 | ans += String.fromCharCode( 20 | str.charCodeAt(i) - 32 21 | ) 22 | } else { 23 | ans += str[i] 24 | } 25 | } 26 | console.log(ans) 27 | 28 | 再一個: 29 | let str = "Hi" 30 | let ans = str.toUpperCase() 31 | console.log(ans) 32 | */ -------------------------------------------------------------------------------- /unit8/examples/lioj1051.js: -------------------------------------------------------------------------------- 1 | var readline = require('readline'); 2 | var rl = readline.createInterface({ 3 | input: process.stdin 4 | }); 5 | 6 | var lines = [] 7 | 8 | // 讀取到一行,先把這一行加進去 lines 陣列,最後再一起處理 9 | rl.on('line', function (line) { 10 | lines.push(line) 11 | }); 12 | 13 | // 輸入結束,開始針對 lines 做處理 14 | rl.on('close', function() { 15 | solve(lines) 16 | }) 17 | 18 | // 上面都不用管,只需要完成這個 function 就好,可以透過 lines[i] 拿取內容 19 | function solve(lines) { 20 | let arr = lines[1].split(' ').map(Number) 21 | let sum = 0 22 | for(let i=0; i arr[j]) { 25 | sum++ 26 | } 27 | } 28 | } 29 | console.log(sum) 30 | } 31 | -------------------------------------------------------------------------------- /unit5/examples/lioj1031.js: -------------------------------------------------------------------------------- 1 | var readline = require('readline'); 2 | var rl = readline.createInterface({ 3 | input: process.stdin 4 | }); 5 | 6 | var lines = [] 7 | 8 | // 讀取到一行,先把這一行加進去 lines 陣列,最後再一起處理 9 | rl.on('line', function (line) { 10 | lines.push(line) 11 | }); 12 | 13 | // 輸入結束,開始針對 lines 做處理 14 | rl.on('close', function() { 15 | solve(lines) 16 | }) 17 | 18 | // 上面都不用管,只需要完成這個 function 就好,可以透過 lines[i] 拿取內容 19 | function solve(lines) { 20 | let n = Number(lines[0]) 21 | let sum = 0 22 | for(let i=1; i<=n; i++) { 23 | if (isSquare(i)) { 24 | sum += i 25 | } 26 | } 27 | console.log(sum) 28 | } 29 | 30 | function isSquare(n) { 31 | let r = Math.floor(Math.sqrt(n)) 32 | return r*r === n 33 | } 34 | -------------------------------------------------------------------------------- /unit6/examples/lioj1045.js: -------------------------------------------------------------------------------- 1 | var readline = require('readline'); 2 | var rl = readline.createInterface({ 3 | input: process.stdin 4 | }); 5 | 6 | var lines = [] 7 | 8 | // 讀取到一行,先把這一行加進去 lines 陣列,最後再一起處理 9 | rl.on('line', function (line) { 10 | lines.push(line) 11 | }); 12 | 13 | // 輸入結束,開始針對 lines 做處理 14 | rl.on('close', function() { 15 | solve(lines) 16 | }) 17 | 18 | // 上面都不用管,只需要完成這個 function 就好,可以透過 lines[i] 拿取內容 19 | function solve(lines) { 20 | console.log(slice(lines[0], Number(lines[1]), Number(lines[2]))) 21 | } 22 | 23 | // LIOJ 1045:String slice 24 | function slice(str, beginIndex, endIndex) { 25 | let result = '' 26 | for(let i=beginIndex; i=0; i--) { 31 | result += str[i] 32 | } 33 | return result 34 | } 35 | 36 | -------------------------------------------------------------------------------- /unit3/README.md: -------------------------------------------------------------------------------- 1 | # Unit3:寫程式前的最後一步:看懂題目 2 | 3 | 1. 注意題目要求 4 | 2. 輸入輸出 5 | 3. 輸入範圍 6 | 7 | ## Unit3.1:弄清題意,翻成白話文 8 | 9 | 範例:[LIOJ 1008:幾個水桶](https://oj.lidemy.com/problem/1008) 10 | 11 | ## Unit3.2:最重要的小事:輸入範圍 12 | 13 | 範例:[LIOJ 1004:聯誼順序比大小](https://oj.lidemy.com/problem/1004) 14 | 15 | 講解解題相關的必要範圍相關知識,包括: 16 | 17 | 1. 記憶體可以用多少?陣列可以開多大? 18 | 2. 時間可以多久?(牽涉到時間複雜度) 19 | 3. 常見型態的記憶體大小以及範圍(int, dobule 等等) 20 | 21 | ## Unit3.3:輸入與輸出方式 22 | 23 | Unit0 的時候已經都講過了,所以稍微帶過即可 24 | 會跟之前那個 LidemyOJ 說明影片滿類似的 25 | 26 | ## Unit3.4:Project3 介紹 27 | 28 | 給三個題目,用白話文改寫 29 | 並且提出在解題中有可能碰到的問題或是需要特別注意的地方 30 | 31 | 1. [LIOJ 1010:靈魂伴侶](https://oj.lidemy.com/problem/1010) 32 | 2. [LIOJ 1015:音速小子](https://oj.lidemy.com/problem/1015) 33 | 3. [LIOJ 1017:貪婪的小偷](https://oj.lidemy.com/problem/1017) 34 | -------------------------------------------------------------------------------- /unit7/examples/npsc2008.js: -------------------------------------------------------------------------------- 1 | var readline = require('readline'); 2 | var rl = readline.createInterface({ 3 | input: process.stdin 4 | }); 5 | 6 | var lines = [] 7 | 8 | // 讀取到一行,先把這一行加進去 lines 陣列,最後再一起處理 9 | rl.on('line', function (line) { 10 | lines.push(line) 11 | }); 12 | 13 | // 輸入結束,開始針對 lines 做處理 14 | rl.on('close', function() { 15 | solve(lines) 16 | }) 17 | 18 | // 上面都不用管,只需要完成這個 function 就好,可以透過 lines[i] 拿取內容 19 | function solve(lines) { 20 | for(let i=1; i= 'A' && str[i] <= 'Z') { 27 | let code = str.charCodeAt(i) 28 | result += String.fromCharCode(code + 32) 29 | } else { 30 | result += str[i] 31 | } 32 | } 33 | return result 34 | } 35 | -------------------------------------------------------------------------------- /unit6/examples/lioj1038.js: -------------------------------------------------------------------------------- 1 | var readline = require('readline'); 2 | var rl = readline.createInterface({ 3 | input: process.stdin 4 | }); 5 | 6 | var lines = [] 7 | 8 | // 讀取到一行,先把這一行加進去 lines 陣列,最後再一起處理 9 | rl.on('line', function (line) { 10 | lines.push(line) 11 | }); 12 | 13 | // 輸入結束,開始針對 lines 做處理 14 | rl.on('close', function() { 15 | solve(lines) 16 | }) 17 | 18 | // 上面都不用管,只需要完成這個 function 就好,可以透過 lines[i] 拿取內容 19 | function solve(lines) { 20 | let target = Number(lines[0]) 21 | let arr = [] 22 | for(let i=2; i= 10) { 25 | p = addDigits(p) 26 | } 27 | console.log(p) 28 | } 29 | 30 | function addDigits(n) { 31 | let sum = 0 32 | while(n != 0) { 33 | sum += n % 10 34 | n = Math.floor(n / 10) 35 | } 36 | return sum 37 | } 38 | -------------------------------------------------------------------------------- /unit5/examples/lioj1026.js: -------------------------------------------------------------------------------- 1 | var readline = require('readline'); 2 | var rl = readline.createInterface({ 3 | input: process.stdin 4 | }); 5 | 6 | var lines = [] 7 | 8 | // 讀取到一行,先把這一行加進去 lines 陣列,最後再一起處理 9 | rl.on('line', function (line) { 10 | lines.push(line) 11 | }); 12 | 13 | // 輸入結束,開始針對 lines 做處理 14 | rl.on('close', function() { 15 | solve(lines) 16 | }) 17 | 18 | // 上面都不用管,只需要完成這個 function 就好,可以透過 lines[i] 拿取內容 19 | function solve(lines) { 20 | let n = Number(lines[0]) 21 | let arr = lines[1].split(' ') // ['3', '9', '27'] 22 | if (isValid(arr)) { 23 | console.log('Yes') 24 | } else { 25 | console.log('No') 26 | } 27 | } 28 | 29 | function isValid(arr) { 30 | let d = arr[1] / arr[0] 31 | for(let i=1; i=0; i--) { 34 | result.push(arr[i]) 35 | } 36 | return result 37 | } 38 | 39 | -------------------------------------------------------------------------------- /unit4/examples/1023.js: -------------------------------------------------------------------------------- 1 | var readline = require('readline'); 2 | var rl = readline.createInterface({ 3 | input: process.stdin 4 | }); 5 | 6 | var lines = [] 7 | 8 | rl.on('line', function (line) { 9 | lines.push(line) 10 | }); 11 | 12 | rl.on('close', function() { 13 | solve(lines) 14 | }) 15 | 16 | // 拿到所有資料 17 | function solve(lines) { 18 | let n = Number(lines[0]) 19 | for(let i=1; i<=n; i++) { 20 | printTree(i, n) 21 | } 22 | for(let i=1; i<=n-1; i++) { 23 | printBottom(n) 24 | } 25 | } 26 | 27 | function printTree(i, n) { 28 | console.log( 29 | repeat(' ', n - i) + 30 | repeat('*', 2*i - 1) 31 | ) 32 | } 33 | 34 | function printBottom(n) { 35 | console.log(repeat(' ', n - 1) + '|') 36 | } 37 | 38 | function repeat(str, n) { 39 | let result = '' 40 | for(let i=1; i<=n; i++) { 41 | result += str 42 | } 43 | return result 44 | } 45 | -------------------------------------------------------------------------------- /unit7/examples/README.md: -------------------------------------------------------------------------------- 1 | # Unit7 範例 2 | 3 | ## JavaScript 4 | 5 | 1. [Unit7.3:實戰:NPSC 2019 國中組初賽](npsc2019.js) 6 | 2. [Unit7.4:實戰:NPSC 2008 國中組初賽](npsc2008.js) 7 | 8 | ## Project7 9 | 10 | ### 1. LIOJ 1008:幾個水桶 11 | 12 | 題目連結:[LIOJ 1008:幾個水桶](https://oj.lidemy.com/problem/1008) 13 | 14 | 參考解答:[LIOJ 1008](lioj1008.js) 15 | 16 | ### 2. LIOJ 1009:Yo!倒著唸! 17 | 18 | 題目連結:[LIOJ 1009:Yo!倒著唸!](https://oj.lidemy.com/problem/1009) 19 | 20 | 參考解答:[LIOJ 1009](lioj1009.js) 21 | 22 | ### 3. LIOJ 1013:搭電梯 23 | 24 | 題目連結:[LIOJ 1013:搭電梯](https://oj.lidemy.com/problem/1013) 25 | 26 | 參考解答:[LIOJ 1013](lioj1013.js) 27 | 28 | ### 4. LIOJ 1014:不九人世 29 | 30 | 題目連結:[LIOJ 1014:不九人世](https://oj.lidemy.com/problem/1014) 31 | 32 | 參考解答:[LIOJ 1014](lioj1014.js) 33 | 34 | ### 5. LIOJ 1016:不合群的人 35 | 36 | 題目連結:[LIOJ 1016:不合群的人](https://oj.lidemy.com/problem/1016) 37 | 38 | 參考解答:[LIOJ 1016](lioj1016.js) -------------------------------------------------------------------------------- /unit6/examples/lioj1039.js: -------------------------------------------------------------------------------- 1 | var readline = require('readline'); 2 | var rl = readline.createInterface({ 3 | input: process.stdin 4 | }); 5 | 6 | var lines = [] 7 | 8 | // 讀取到一行,先把這一行加進去 lines 陣列,最後再一起處理 9 | rl.on('line', function (line) { 10 | lines.push(line) 11 | }); 12 | 13 | // 輸入結束,開始針對 lines 做處理 14 | rl.on('close', function() { 15 | solve(lines) 16 | }) 17 | 18 | // 上面都不用管,只需要完成這個 function 就好,可以透過 lines[i] 拿取內容 19 | function solve(lines) { 20 | let target = Number(lines[0]) 21 | let arr = [] 22 | for(let i=2; i n3 4 | // str[2] => n4 5 | function isValidTWId(str) { 6 | if (str === 'Y10000001') return true 7 | if (str.length !== 10) return false 8 | if (!(str[0] >= 'A' && str[0] <= 'Z')) return false 9 | 10 | let n = alphaToNumber(str[0]) 11 | let n1 = Math.floor(n / 10) 12 | let n2 = n % 10 13 | 14 | let sum = n1*1 + n2*9 15 | // i: 1~8 16 | for(let i=1; i 3: 33 | // 28 (c: 2) 34 | function ceaserCipher(n, s) { 35 | // 0~25` 36 | let code = s.charCodeAt(0) - 97 37 | let newCode = (code + n) % 26 38 | return String.fromCharCode(newCode + 97) 39 | } 40 | -------------------------------------------------------------------------------- /unit8/examples/lioj1047.js: -------------------------------------------------------------------------------- 1 | var readline = require('readline'); 2 | var rl = readline.createInterface({ 3 | input: process.stdin 4 | }); 5 | 6 | var lines = [] 7 | 8 | // 讀取到一行,先把這一行加進去 lines 陣列,最後再一起處理 9 | rl.on('line', function (line) { 10 | lines.push(line) 11 | }); 12 | 13 | // 輸入結束,開始針對 lines 做處理 14 | rl.on('close', function() { 15 | solve(lines) 16 | }) 17 | 18 | // 上面都不用管,只需要完成這個 function 就好,可以透過 lines[i] 拿取內容 19 | function solve(lines) { 20 | let [n, m] = lines[0].split(' ') 21 | let arr = [] 22 | for(let i=0; i max) { 34 | max = sum 35 | } 36 | } 37 | } 38 | console.log(max) 39 | } 40 | 41 | -------------------------------------------------------------------------------- /unit9/examples/lioj1048.js: -------------------------------------------------------------------------------- 1 | var readline = require('readline'); 2 | var rl = readline.createInterface({ 3 | input: process.stdin 4 | }); 5 | 6 | var lines = [] 7 | 8 | // 讀取到一行,先把這一行加進去 lines 陣列,最後再一起處理 9 | rl.on('line', function (line) { 10 | lines.push(line) 11 | }); 12 | 13 | // 輸入結束,開始針對 lines 做處理 14 | rl.on('close', function() { 15 | solve(lines) 16 | }) 17 | 18 | // 上面都不用管,只需要完成這個 function 就好,可以透過 lines[i] 拿取內容 19 | function solve(lines) { 20 | let arr = [] 21 | for(let i=1; i arr[i]) { 31 | currentSum += arr[i] 32 | } else { 33 | currentSum = arr[i] 34 | } 35 | if (currentSum > max) { 36 | max = currentSum 37 | } 38 | } 39 | console.log(max) 40 | } 41 | -------------------------------------------------------------------------------- /unit2/examples/swap-case.js: -------------------------------------------------------------------------------- 1 | let str = "hELLo" 2 | let ans = '' 3 | for(let i=0; i= 97 && code <= 122) { 6 | ans += String.fromCharCode(code - 32) 7 | } else if (code >= 65 && code <= 90) { 8 | ans += String.fromCharCode(code + 32) 9 | } else { 10 | ans += str[i] 11 | } 12 | } 13 | console.log(ans) 14 | 15 | /* 16 | 17 | 1. 設 ans 為空字串 18 | 2. 迴圈第一圈,i 會從 0~4 19 | 3. i=0 20 | 4. code = str[0] 的 charcode = 104 21 | 5. 判斷是否是小寫 22 | 6. 是 23 | 7. ans += 'H' 24 | 8. 下一圈迴圈,i=1 25 | 9. code = str[1] = 69 26 | 10. 判斷是否是小寫 27 | 11. 判斷是否是大寫 28 | 12. 是,ans += 'e' 29 | 13. 下一圈迴圈,i=2 30 | 14. code = str[2] = 76 31 | 15. 判斷是否是小寫 32 | 16. 判斷是否是大寫 33 | 17. 是,ans += 'l' 34 | 18. 下一圈迴圈,i=3 35 | 19. code = str[3] = 76 36 | 20. 判斷是否是小寫 37 | 21. 判斷是否是大寫 38 | 22. 是,ans += 'l' 39 | 23. 下一圈迴圈,i=4 40 | 24. code = str[4] = 111 41 | 25. 判斷是否是小寫 42 | 26. 是,ans += 'O' 43 | 27. 下一圈迴圈,i=5 44 | 28. 迴圈結束 45 | 29. 印出 ans 46 | 47 | 48 | */ -------------------------------------------------------------------------------- /unit6/examples/lioj1037.js: -------------------------------------------------------------------------------- 1 | var readline = require('readline'); 2 | var rl = readline.createInterface({ 3 | input: process.stdin 4 | }); 5 | 6 | var lines = [] 7 | 8 | // 讀取到一行,先把這一行加進去 lines 陣列,最後再一起處理 9 | rl.on('line', function (line) { 10 | lines.push(line) 11 | }); 12 | 13 | // 輸入結束,開始針對 lines 做處理 14 | rl.on('close', function() { 15 | solve(lines) 16 | }) 17 | 18 | // 上面都不用管,只需要完成這個 function 就好,可以透過 lines[i] 拿取內容 19 | function solve(lines) { 20 | let target = Number(lines[0]) 21 | let arr = [] 22 | for(let i=2; i 28 | } 29 | } 30 | 31 | export default Fullscreen -------------------------------------------------------------------------------- /unit4/README.md: -------------------------------------------------------------------------------- 1 | # Unit4:主角總是最後才登場:寫程式囉 2 | 3 | 這個單元裡面終於要來寫實際的程式碼了! 4 | 5 | 最主要的其實就是把之前的虛擬碼翻譯成程式碼。若是在這方面有困難,也會介紹幾個小技巧。 6 | 7 | ## Unit4.1:從虛擬碼到程式碼 8 | 9 | 把虛擬碼翻譯成程式碼 10 | 11 | ## Unit4.2:函式填空法 12 | 13 | 若是從虛擬碼換成程式碼有障礙,可以試著用「function 取代法」,可以讓你不用碰到多層迴圈(但你以後還是要會) 14 | 15 | 舉例:[LIOJ 1020:判斷質數](https://oj.lidemy.com/problem/1020) 16 | 17 | ## Unit4.3:簡化法 18 | 19 | 例如說要印出 1-n 個星星,就每一行先印出一個 20 | 再來想要怎麼把每一行變成 i 個 21 | 可以跟上一個方法搭配使用 22 | 23 | 舉例:[LIOJ 1021:好多星星](https://oj.lidemy.com/problem/1021) 24 | 25 | ## Unit4.4:寫程式三寶:迴圈、函式、判斷式 26 | 27 | 就只是講一下任何問題幾乎用這三個就可以完成 28 | 不要再那邊給我糾結什麼 map 什麼 reduce,你不用那些一樣寫得出來 29 | 30 | ## Unit4.5:實戰:印出金字塔 31 | 32 | [LIOJ 1022:印出金字塔](https://oj.lidemy.com/problem/1022) 33 | 34 | ## Unit4.6:實戰:九九乘法表 35 | ## Unit4.7:實戰:印出 1-100 的平方數 36 | 37 | ## Unit4.8:Project4 介紹 38 | 39 | 給幾個簡單的題目讓大家練習 40 | 41 | 1. [LIOJ 1023:印出聖誕樹](https://oj.lidemy.com/problem/1023) 42 | 2. [LIOJ 1024:NN 乘法表](https://oj.lidemy.com/problem/1024) 43 | 3. [LIOJ 1025:水仙花數](https://oj.lidemy.com/problem/1025) 44 | -------------------------------------------------------------------------------- /unit7/examples/lioj1016.js: -------------------------------------------------------------------------------- 1 | var readline = require('readline'); 2 | var rl = readline.createInterface({ 3 | input: process.stdin 4 | }); 5 | 6 | var lines = [] 7 | 8 | // 讀取到一行,先把這一行加進去 lines 陣列,最後再一起處理 9 | rl.on('line', function (line) { 10 | lines.push(line) 11 | }); 12 | 13 | // 輸入結束,開始針對 lines 做處理 14 | rl.on('close', function() { 15 | solve(lines) 16 | }) 17 | 18 | // 上面都不用管,只需要完成這個 function 就好,可以透過 lines[i] 拿取內容 19 | function solve(lines) { 20 | let n = Number(lines[0]) 21 | let aCount = 0 22 | for(let i=1; i= searchString.length 24 | /* 25 | abc <- 26 | <- 27 | 28 | abcd <- 29 | a <- 30 | */ 31 | function endsWith(str, searchString) { 32 | if (searchString.length > str.length) { 33 | return false 34 | } 35 | 36 | let strIndex = str.length - 1 37 | let searchStrIndex = searchString.length - 1 38 | 39 | while(searchStrIndex >= 0) { 40 | if (str[strIndex] !== searchString[searchStrIndex]) { 41 | return false 42 | } 43 | strIndex-- 44 | searchStrIndex-- 45 | } 46 | return true 47 | } 48 | 49 | -------------------------------------------------------------------------------- /unit5/README.md: -------------------------------------------------------------------------------- 1 | # Unit5:經典題目解解看 2 | 3 | 這一週禁止使用內建 function,例如 Array.map, filter, indexOf, reduce 等等 4 | 只能用最基本的迴圈(for loop, while loop...)以及判斷式(if else, switch case) 5 | 相信我,這些東西就可以解了 6 | (但如果有需要字串切割,可以使用 `split`) 7 | 8 | 這個單元裡面會來寫一些經典的水題,在實戰中我會分成兩個部分 9 | 第一個部分先按照之前教的寫出虛擬碼,第二個部分才寫程式碼 10 | 11 | ## Unit5.1:達到什麼程度才能解經典題目? 12 | ## Unit5.2:實戰:判斷等差數列 13 | ## Unit5.3:實戰:身分證驗證 14 | ## Unit5.4:實戰:數字位數加總 15 | 16 | ## Unit5.5:Project5 介紹 17 | 18 | Project5 會有十題簡單題目,規則跟上面一樣,禁止使用內建 function 來解題: 19 | 20 | 1. [LIOJ 1026:判斷等比數列](https://oj.lidemy.com/problem/1026) 21 | 2. [LIOJ 1027:信用卡號驗證](https://oj.lidemy.com/problem/1027) 22 | 3. [LIOJ 1028:生命靈數](https://oj.lidemy.com/problem/1028) 23 | 4. [LIOJ 1029:加減乘除](https://oj.lidemy.com/problem/1029) 24 | 5. [LIOJ 1030:判斷迴文](https://oj.lidemy.com/problem/1030) 25 | 6. [LIOJ 1031:完全平方和](https://oj.lidemy.com/problem/1031) 26 | 7. [LIOJ 1032:平面距離計算](https://oj.lidemy.com/problem/1032) 27 | 8. [LIOJ 1033:最近點對](https://oj.lidemy.com/problem/1033) 28 | 9. [LIOJ 1034:凱薩加密](https://oj.lidemy.com/problem/1034) 29 | 10. [LIOJ 1046:圈圈叉叉](https://oj.lidemy.com/problem/1046) 30 | -------------------------------------------------------------------------------- /unit5/examples/lioj1046.js: -------------------------------------------------------------------------------- 1 | var readline = require('readline'); 2 | var rl = readline.createInterface({ 3 | input: process.stdin 4 | }); 5 | 6 | var lines = [] 7 | 8 | // 讀取到一行,先把這一行加進去 lines 陣列,最後再一起處理 9 | rl.on('line', function (line) { 10 | lines.push(line) 11 | }); 12 | 13 | // 輸入結束,開始針對 lines 做處理 14 | rl.on('close', function() { 15 | solve(lines) 16 | }) 17 | 18 | // 上面都不用管,只需要完成這個 function 就好,可以透過 lines[i] 拿取內容 19 | function solve(lines) { 20 | console.log(whoWin(lines)) 21 | } 22 | 23 | function whoWin(lines) { 24 | for (let i=0; i<3; i++) { 25 | if (lines[i][0] === lines[i][1] && lines[i][1] === lines[i][2]) { 26 | return lines[i][0] 27 | } 28 | } 29 | 30 | for (let i=0; i<3; i++) { 31 | if (lines[0][i] === lines[1][i] && lines[1][i] === lines[2][i]) { 32 | return lines[0][i] 33 | } 34 | } 35 | 36 | if (lines[0][0] === lines[1][1] && lines[1][1] === lines[2][2]) { 37 | return lines[1][1] 38 | } 39 | 40 | if (lines[0][2] === lines[1][1] && lines[1][1] === lines[2][0]) { 41 | return lines[1][1] 42 | } 43 | 44 | return 'DRAW' 45 | } 46 | -------------------------------------------------------------------------------- /public/page-data/index/page-data.json: -------------------------------------------------------------------------------- 1 | {"componentChunkName":"component---node-modules-gatsby-theme-mdx-deck-src-templates-decks-js","path":"/","result":{"pageContext":{"decks":[{"node":{"id":"25c9bca1-fd11-59f2-8d5b-785e2d50217a","slug":"/unit3","title":"先別急著寫 leetcode"}},{"node":{"id":"9576162b-69f7-5aa4-b4c7-ac21ae52e376","slug":"/unit5","title":"先別急著寫 leetcode"}},{"node":{"id":"a5f73508-f74b-56cb-8a5a-4b9f1fc6a31e","slug":"/unit7","title":"先別急著寫 leetcode"}},{"node":{"id":"25e2c2c5-43fa-5355-ac8c-c3e8d51e4b9f","slug":"/unit6","title":"先別急著寫 leetcode"}},{"node":{"id":"a3d334a0-f4b5-5693-867c-811256db92f7","slug":"/unit0","title":"先別急著寫 leetcode"}},{"node":{"id":"f37dbe09-817d-5312-9088-afd77e338f44","slug":"/unit4","title":"先別急著寫 leetcode"}},{"node":{"id":"96e9afa1-3adf-51ec-8962-fa47a8713a20","slug":"/unit1","title":"先別急著寫 leetcode"}},{"node":{"id":"f3751596-3e1e-5d9e-95cd-db19d228f500","slug":"/unit9","title":"先別急著寫 leetcode"}},{"node":{"id":"ea23ec63-deef-572e-acdd-30d91b3e003a","slug":"/unit8","title":"先別急著寫 leetcode"}},{"node":{"id":"90d521b0-275f-5242-b2ab-276778c9fe44","slug":"/unit2","title":"先別急著寫 leetcode"}}]}}} -------------------------------------------------------------------------------- /unit9/README.md: -------------------------------------------------------------------------------- 1 | # Unit9:未來的路還很漫長,你還差得遠呢 2 | 3 | 這是最後一個單元,希望能讓大家認識到出了這堂課以後,需要學習的東西還多著 4 | 因為這堂課真的只是基礎中的基礎,大約只是資工系大一的前兩堂課而已 5 | 這些最基礎的東西,真的只會用到變數、陣列、判斷式跟迴圈 6 | 再難一點就會需要其他資料結構還有各式各樣的演算法 7 | 8 | 先求寫的出來,再來考慮要怎麼加速 9 | 先確保你用中文可以把怎麽解題寫出來,才去寫程式碼 10 | 11 | ## Unit9.1:淺談資料結構 12 | ## Unit9.2:淺談演算法 13 | ## Unit9.3:實戰:LIOJ 1035:簡易排序 14 | ## Unit9.4:實戰:LIOJ 1047:搜尋數字 15 | ## Unit9.5:實戰:LIOJ 1048:最大連續和 16 | ## Unit9.6:結語 17 | 18 | ## Unit9.7:Project9 介紹 19 | 20 | 麻煩抽空幫我寫個[課程心得](https://forms.gle/GNFGJeGoe4onMcxd8) 21 | 22 | 也可以把 LIOJ 上面課程沒出現過的題目寫完,其中特別推薦的是: 23 | 24 | 1. [LIOJ1003 - 聯誼門票搶起來](https://oj.lidemy.com/problem/1003) 25 | 2. [LIOJ1004 - 聯誼順序比大小](https://oj.lidemy.com/problem/1004) 26 | 3. [LIOJ1005 - 聯誼話題相親數](https://oj.lidemy.com/problem/1005) 27 | 4. [LIOJ1006 - 聯誼坐法排排看](https://oj.lidemy.com/problem/1006) 28 | 5. [LIOJ1007 - 聯誼排行大比拼](https://oj.lidemy.com/problem/1007) 29 | 6. [LIOJ1018 - 大平台](https://oj.lidemy.com/problem/1018) 30 | 7. [LIOJ1019 - 一條路走到黑](https://oj.lidemy.com/problem/1019) 31 | 8. [LIOJ1052 - 貪婪的小偷 Part2](https://oj.lidemy.com/problem/1052) 32 | 9. [LIOJ1053 - 走迷宮](https://oj.lidemy.com/problem/1053) 33 | 34 | -------------------------------------------------------------------------------- /unit9/examples/lioj1047.js: -------------------------------------------------------------------------------- 1 | var readline = require('readline'); 2 | var rl = readline.createInterface({ 3 | input: process.stdin 4 | }); 5 | 6 | var lines = [] 7 | 8 | // 讀取到一行,先把這一行加進去 lines 陣列,最後再一起處理 9 | rl.on('line', function (line) { 10 | lines.push(line) 11 | }); 12 | 13 | // 輸入結束,開始針對 lines 做處理 14 | rl.on('close', function() { 15 | solve(lines) 16 | }) 17 | 18 | // 上面都不用管,只需要完成這個 function 就好,可以透過 lines[i] 拿取內容 19 | function solve(lines) { 20 | let [n, m] = lines[0].split(' ') 21 | let arr = [] 22 | for(let i=0; i q) { 50 | R = M - 1 51 | } else { 52 | L = M + 1 53 | } 54 | } 55 | 56 | return -1 57 | } 58 | -------------------------------------------------------------------------------- /unit7/examples/lioj1008.js: -------------------------------------------------------------------------------- 1 | var readline = require('readline'); 2 | var rl = readline.createInterface({ 3 | input: process.stdin 4 | }); 5 | 6 | var lines = [] 7 | 8 | // 讀取到一行,先把這一行加進去 lines 陣列,最後再一起處理 9 | rl.on('line', function (line) { 10 | lines.push(line) 11 | }); 12 | 13 | // 輸入結束,開始針對 lines 做處理 14 | rl.on('close', function() { 15 | solve(lines) 16 | }) 17 | 18 | // 上面都不用管,只需要完成這個 function 就好,可以透過 lines[i] 拿取內容 19 | function solve(lines) { 20 | let n = Number(lines[0]) 21 | let sum = 0 22 | while(n>0) { 23 | sum += n&1 24 | n >>= 1 25 | } 26 | console.log(sum) 27 | } 28 | 29 | // 轉成二進位 30 | function solveTwo(lines) { 31 | let n = Number(lines[0]) 32 | let sum = 0 33 | let str = n.toString(2) 34 | for(let i=0; i=0; i--) { 51 | if (arr[i] <= n) { 52 | n-=arr[i] 53 | sum++ 54 | } 55 | } 56 | console.log(sum) 57 | } 58 | 59 | -------------------------------------------------------------------------------- /public/component---node-modules-gatsby-theme-mdx-deck-src-templates-decks-js-b4b8473d9a60847c7209.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[3],{VcLT:function(t,n,e){"use strict";e.r(n);e("rGqo"),e("yt8O"),e("Btvt"),e("RW0V"),e("91GP"),e("q1tI");var r=e("txSG"),o=e("Wbzz"),c=e("qKvR"),i=function(t){var n=t.decks;return Object(r.d)("div",{sx:{fontFamily:"ui",fontWeight:"bold",px:4,py:3}},Object(r.d)("h1",null,"MDX Deck"),Object(r.d)("ul",{sx:{p:0}},n.map((function(t){return Object(r.d)("li",{key:t.id,sx:{my:2}},Object(r.d)(o.Link,{to:t.slug,sx:{color:"inherit",textDecoration:"none",":hover":{textDecoration:"underline"}}},t.title||t.slug))}))))};function u(){return(u=Object.assign||function(t){for(var n=1;n=0||(o[e]=t[e]);return o}(t,["pageContext"]),r=n.decks.map((function(t){return t.node}));return Object(c.c)(i,u({},e,{decks:r}))}}}]); 2 | //# sourceMappingURL=component---node-modules-gatsby-theme-mdx-deck-src-templates-decks-js-b4b8473d9a60847c7209.js.map -------------------------------------------------------------------------------- /unit6/examples/lioj1041.js: -------------------------------------------------------------------------------- 1 | var readline = require('readline'); 2 | var rl = readline.createInterface({ 3 | input: process.stdin 4 | }); 5 | 6 | var lines = [] 7 | 8 | // 讀取到一行,先把這一行加進去 lines 陣列,最後再一起處理 9 | rl.on('line', function (line) { 10 | lines.push(line) 11 | }); 12 | 13 | // 輸入結束,開始針對 lines 做處理 14 | rl.on('close', function() { 15 | solve(lines) 16 | }) 17 | 18 | // 上面都不用管,只需要完成這個 function 就好,可以透過 lines[i] 拿取內容 19 | function solve(lines) { 20 | console.log(trim(lines[0])) 21 | } 22 | 23 | // ___a_bc___ 24 | // part1: abc___ 25 | // part2: abc 26 | /* 27 | if (還沒碰到字) { 28 | 略過 29 | } else { 30 | 後面都加上去 31 | } 32 | */ 33 | function trim(str) { 34 | // 去掉前面空白 35 | let result = '' 36 | let isFrontWhiteSpaceEnd = false 37 | for(let i=0; i=0; i--) { 50 | if (result[i] !== ' ' || isBackWhiteSpaceEnd) { 51 | isBackWhiteSpaceEnd = true 52 | ret = result[i] + ret 53 | } 54 | } 55 | 56 | return ret 57 | } -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "alg101-too-weak-to-leetcode", 3 | "version": "1.0.0", 4 | "description": "這個 repo 會放與課程相關的資源,包含大綱、作業以及參考解答程式碼 完整課程可以在這邊找到:(待補)", 5 | "main": "index.js", 6 | "scripts": { 7 | "clean": "rm -rf .cache public", 8 | "start": "yarn clean && gatsby develop", 9 | "build": "yarn clean && gatsby build --prefix-paths" 10 | }, 11 | "repository": { 12 | "type": "git", 13 | "url": "git+https://github.com/Lidemy/ALG101-too-weak-to-leetcode.git" 14 | }, 15 | "author": "", 16 | "license": "ISC", 17 | "bugs": { 18 | "url": "https://github.com/Lidemy/ALG101-too-weak-to-leetcode/issues" 19 | }, 20 | "homepage": "https://github.com/Lidemy/ALG101-too-weak-to-leetcode#readme", 21 | "devDependencies": { 22 | "@babel/core": "^7.0.0", 23 | "@types/react": "^16.9.11", 24 | "@types/react-dom": "^16.9.4", 25 | "gatsby": "^2.17.15", 26 | "gatsby-plugin-compile-es6-packages": "^2.1.0", 27 | "gatsby-theme-mdx-deck": "^3.0.13", 28 | "husky": "^3.0.9", 29 | "mdx-deck": "^3.0.13", 30 | "prettier": "~1.18.0", 31 | "pretty-quick": "^2.0.1", 32 | "typescript": "^3.7.2" 33 | }, 34 | "dependencies": { 35 | "code-surfer": "^3.1.0", 36 | "react": "^16.12.0", 37 | "react-dom": "^16.12.0" 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /unit6/examples/lioj1044.js: -------------------------------------------------------------------------------- 1 | var readline = require('readline'); 2 | var rl = readline.createInterface({ 3 | input: process.stdin 4 | }); 5 | 6 | var lines = [] 7 | 8 | // 讀取到一行,先把這一行加進去 lines 陣列,最後再一起處理 9 | rl.on('line', function (line) { 10 | lines.push(line) 11 | }); 12 | 13 | // 輸入結束,開始針對 lines 做處理 14 | rl.on('close', function() { 15 | solve(lines) 16 | }) 17 | 18 | // 上面都不用管,只需要完成這個 function 就好,可以透過 lines[i] 拿取內容 19 | function solve(lines) { 20 | console.log( 21 | padEnd(lines[0], Number(lines[1]), lines[2]) 22 | ) 23 | } 24 | 25 | function padEnd(str, targetLength, padString) { 26 | if (str.length >= targetLength) { 27 | return str 28 | } 29 | 30 | let result = str 31 | let n = 0 32 | while(result.length < targetLength) { 33 | result += padString[n] 34 | n++ 35 | if (n === padString.length) { 36 | n = 0 37 | } 38 | } 39 | 40 | return result 41 | } 42 | 43 | function padEnd1(str, targetLength, padString) { 44 | if (str.length >= targetLength) { 45 | return str 46 | } 47 | 48 | let result = str 49 | while(result.length < targetLength) { 50 | result += padString 51 | } 52 | 53 | let newResult = '' 54 | for(let i=0; i ['5', '200'] 19 | let temp = lines[0].split(' ') 20 | let n = Number(temp[0]) 21 | let m = Number(temp[1]) 22 | for(let i=n; i<=m; i++) { 23 | if (isNarcissistic(i)) { 24 | console.log(i) 25 | } 26 | } 27 | } 28 | 29 | // 回傳數字幾位數 30 | function digitsCount(n) { 31 | if (n===0) return 1 32 | let result = 0 33 | while(n != 0) { 34 | n = Math.floor( n / 10) 35 | result++ 36 | } 37 | return result 38 | } 39 | 40 | function isNarcissistic(n) { 41 | // 幾位數 42 | let m = n 43 | let digits = digitsCount(m) 44 | let sum = 0 45 | while(m != 0) { 46 | let num = m % 10 47 | // 可改成 Math.pow(num, digits) 48 | sum += num**digits 49 | m = Math.floor( m / 10) 50 | } 51 | 52 | // 可簡化成 53 | // return sum === n 54 | if (sum === n) { 55 | return true 56 | } else { 57 | return false 58 | } 59 | } 60 | 61 | // 偷吃步的做法 62 | function isNstr(n) { 63 | let str = n + '' 64 | let digits = str.length 65 | let sum = 0 66 | for(let i=0; i= 10) { 63 | p -= 9 64 | } 65 | sum += p 66 | } 67 | return sum 68 | } -------------------------------------------------------------------------------- /unit5/examples/README.md: -------------------------------------------------------------------------------- 1 | # Unit5 範例 2 | 3 | ## JavaScript 4 | 5 | 1. [Unit5.2:實戰:判斷等差數列](arr.js) 6 | 2. [Unit5.3:實戰:身分證驗證](id.js) 7 | 3. [Unit5.4:實戰:數字位數加總](sum.js) 8 | 9 | ## Project5 10 | 11 | ### 1. LIOJ 1026:判斷等比數列 12 | 13 | 題目連結:[LIOJ 1026:判斷等比數列](https://oj.lidemy.com/problem/1026) 14 | 15 | 參考答案:[LIOJ1026](lioj1026.js) 16 | 17 | ### 2. LIOJ 1027:信用卡號驗證 18 | 19 | 題目連結:[LIOJ 1027:信用卡號驗證](https://oj.lidemy.com/problem/1027) 20 | 21 | 參考答案:[LIOJ1027](lioj1027.js) 22 | 23 | ### 3. LIOJ 1028:生命靈數 24 | 25 | 題目連結:[LIOJ 1028:生命靈數](https://oj.lidemy.com/problem/1028) 26 | 27 | 參考答案:[LIOJ1028](lioj1028.js) 28 | 29 | ### 4. LIOJ 1029:加減乘除 30 | 31 | 題目連結:[LIOJ 1029:加減乘除](https://oj.lidemy.com/problem/1029) 32 | 33 | 參考答案:[LIOJ1029](lioj1029.js) 34 | 35 | ### 5. LIOJ 1030:判斷迴文 36 | 37 | 題目連結:[LIOJ 1030:判斷迴文](https://oj.lidemy.com/problem/1030) 38 | 39 | 參考答案:[LIOJ1030](lioj1030.js) 40 | 41 | ### 6. LIOJ 1031:完全平方和 42 | 43 | 題目連結:[LIOJ 1031:完全平方和](https://oj.lidemy.com/problem/1031) 44 | 45 | 參考答案:[LIOJ1031](lioj1031.js) 46 | 47 | ### 7. LIOJ 1032:平面距離計算 48 | 49 | 題目連結:[LIOJ 1032:平面距離計算](https://oj.lidemy.com/problem/1032) 50 | 51 | 參考答案:[LIOJ1032](lioj1032.js) 52 | 53 | ### 8. LIOJ 1033:最近點對 54 | 55 | 題目連結:[LIOJ 1033:最近點對](https://oj.lidemy.com/problem/1033) 56 | 57 | 參考答案:[LIOJ1033](lioj1033.js) 58 | 59 | ### 9. LIOJ 1034:凱薩加密 60 | 61 | 題目連結:[LIOJ 1034:凱薩加密](https://oj.lidemy.com/problem/1034) 62 | 63 | 參考答案:[LIOJ1034](lioj1034.js) 64 | 65 | ### 10. LIOJ 1046:圈圈叉叉 66 | 67 | 題目連結:[LIOJ 1046:簡易排序](https://oj.lidemy.com/problem/1046) 68 | 69 | 參考答案:[LIOJ1046](lioj1046.js) 70 | 71 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # [ALG101] 先別急著寫 leetcode 2 | 3 | 這個 repo 會放與課程相關的資源,包含大綱、作業以及參考解答程式碼 4 | 完整課程可以在這邊找到:[Lidemy - [ALG101] 先別急著寫 leetcode](https://lidemy.com/p/alg101-leetcode) 5 | 6 | 課程相關資源: 7 | 8 | 1. 課程大綱(請見下方) 9 | 2. 範例程式碼及作業參考解答(下方大綱點進去後,再點進 examples 資料夾即可) 10 | 3. [課程簡報](https://lidemy.github.io/ALG101-too-weak-to-leetcode/public/) 11 | 12 | 附註:課程簡報有一個已知問題,那就是當你跳到簡報某一頁然後重新整理時,會顯示 404 Not found。目前暫時的解決方法是把網址列的簡報頁數刪掉,只留下 unitX 當作結尾就會正常。 13 | 14 | 另外,特別感謝 [@minw](https://github.com/ishin4554) 製作的簡報版面。 15 | 16 | 底下是個單元名稱以及大綱連結: 17 | 18 | * [Unit0:課程簡介](unit0) 19 | * [Unit1:要學好程式,從不要寫程式開始](unit1) 20 | * [Unit2:寫程式之前,先學會「看程式」](unit2) 21 | * [Unit3:寫程式前的最後一步:看懂題目](unit3) 22 | * [Unit4:主角總是最後才登場:寫程式囉](unit4) 23 | * [Unit5:經典題目解解看](unit5) 24 | * [Unit6:內建函式做做看](unit6) 25 | * [Unit7:國中題目大挑戰](unit7) 26 | * [Unit8:初學者只管拿分,誰管你什麼效率](unit8) 27 | * [Unit9:未來的路還很漫長,你還差得遠呢](unit9) 28 | 29 | 在課程中會有大量的實作練習,都會附上要練習的題目,強烈建議在觀看參考解答影片之前自己先把題目想過一遍並且試著做做看,才能得到比較好的效果。 30 | 31 | ## Changelog 32 | 33 | ### 2020-04-09 34 | 35 | 更新 LIOJ 1048 範例程式碼 36 | 37 | ### 2020-04-08 38 | 39 | 更新 LIOJ 1016 範例程式碼 40 | 41 | ### 2020-03-17 42 | 43 | 課程簡報以及內容皆準備完成 44 | 正式對外公開課程 45 | 46 | ### 2020-03-14 47 | 1. Unit7 完成 48 | 2. Unit8 完成 49 | 3. Unit9 完成 50 | 51 | ### 2020-03-12 52 | 53 | 1. Unit6 完成 54 | 55 | ### 2020-03-11 56 | 57 | 1. Unit4 完成 58 | 2. Unit5 完成 59 | 60 | ### 2020-03-08 61 | 62 | 1. Unit3 完成 63 | 64 | ### 2020-03-01 65 | 66 | 1. Unit0 完成 67 | 2. Unit1 完成 68 | 3. Unit2 完成 69 | 70 | ### 2020-02-26 71 | 72 | 參考 [https://github.com/pengx17/slides](https://github.com/pengx17/slides) 73 | 把簡報放到 repo 並且透過 GitHub Pages 發布 74 | 75 | ### 2020-01-21 76 | 完成初版大綱 77 | 78 | ### 2020-01-09 79 | 建立 repo 80 | -------------------------------------------------------------------------------- /slides/unit9.mdx: -------------------------------------------------------------------------------- 1 | import Lidemy from './theme' 2 | import { CodeSurfer, Step, CodeSurferColumns } from "code-surfer" 3 | import Layout from './Layout' 4 | import Fullscreen from './Fullscreen' 5 | 6 | export const themes = [Lidemy] 7 | 8 | 9 | 10 | 11 | 12 | # 先別急著寫 leetcode 13 | ## Unit9:未來的路還很漫長,你還差得遠呢 14 | 15 | 16 | 17 | --- 18 | 19 | 20 | 21 | # 先別急著寫 leetcode 22 | ## Unit9.1:淺談資料結構 23 | 24 | 25 | 26 | --- 27 | 28 | # 為什麼需要資料結構? 29 | 30 | --- 31 | 32 | # JS 太方便了 33 | 34 | 1. 萬能 Array 35 | 2. 萬能 Object 36 | 37 | --- 38 | 39 | # 基礎資料結構 40 | 41 | 1. Linked list 42 | 2. Queue 43 | 3. Stack 44 | 4. HashTable 45 | 5. Tree 46 | 47 | --- 48 | 49 | 50 | 51 | # 先別急著寫 leetcode 52 | ## Unit9.2:淺談演算法 53 | 54 | 55 | 56 | --- 57 | 58 | # 什麼是演算法? 59 | 60 | --- 61 | 62 | # 一個排序,各自表述 63 | 64 | 1. 泡沫排序法 65 | 2. 選擇排序法 66 | 3. 插入排序法 67 | 4. 快速排序法 68 | 5. 合併排序法 69 | 70 | --- 71 | 72 | 73 | 74 | # 先別急著寫 leetcode 75 | ## Unit9.3:實戰:LIOJ 1035:簡易排序 76 | 77 | 78 | 79 | --- 80 | 81 | 82 | 83 | 84 | # 先別急著寫 leetcode 85 | ## Unit9.4:實戰:LIOJ 1047:搜尋數字 86 | 87 | 88 | 89 | --- 90 | 91 | 92 | 93 | 94 | # 先別急著寫 leetcode 95 | ## Unit9.5:實戰:LIOJ 1048:最大連續和 96 | 97 | 98 | 99 | --- 100 | 101 | 102 | 103 | # 先別急著寫 leetcode 104 | ## Unit9.6:結語 105 | 106 | 107 | 108 | --- 109 | 110 | # 推薦學習路徑 111 | 112 | 1. 打好基礎 113 | 2. 修一堂演算法課 114 | 3. 透過 leetcode 練習 115 | 116 | --- 117 | 118 | 119 | 120 | # 先別急著寫 leetcode 121 | ## Unit9.7:Project9 介紹 122 | 123 | 124 | 125 | --- 126 | 127 | [課程心得](https://forms.gle/GNFGJeGoe4onMcxd8) 128 | 129 | -------------------------------------------------------------------------------- /unit6/examples/README.md: -------------------------------------------------------------------------------- 1 | # Unit6 範例 2 | 3 | ## JavaScript 4 | 5 | 1. [Unit6.2:實戰:Array.map](map.js) 6 | 2. [Unit6.3:實戰:String.repeat](repeat.js) 7 | 3. [Unit6.4:實戰:Array.lastIndexOf](lastIndexOf.js) 8 | 9 | ## Project6 10 | 11 | ### 1. LIOJ 1036:Array reverse 12 | 13 | 題目連結:[LIOJ 1036:Array reverse](https://oj.lidemy.com/problem/1036) 14 | 15 | 參考解答:[LIOJ 1036](lioj1036.js) 16 | 17 | ### 2. LIOJ 1037:Array filter 18 | 19 | 題目連結:[LIOJ 1037:Array filter](https://oj.lidemy.com/problem/1037) 20 | 21 | 參考解答:[LIOJ 1037](lioj1037.js) 22 | 23 | ### 3. LIOJ 1038:Array indexOf 24 | 25 | 題目連結:[LIOJ 1038:Array indexOf](https://oj.lidemy.com/problem/1038) 26 | 27 | 參考解答:[LIOJ 1038](lioj1038.js) 28 | 29 | ### 4. LIOJ 1039:Array fill 30 | 31 | 題目連結:[LIOJ 1039:Array fill](https://oj.lidemy.com/problem/1039) 32 | 33 | 參考解答:[LIOJ 1039](lioj1039.js) 34 | 35 | ### 5. LIOJ 1040:Array join 36 | 37 | 題目連結:[LIOJ 1040:Array join](https://oj.lidemy.com/problem/1040) 38 | 39 | 參考解答:[LIOJ 1040](lioj1040.js) 40 | 41 | ### 6. LIOJ 1041:String trim 42 | 43 | 題目連結:[LIOJ 1041:String trim](https://oj.lidemy.com/problem/1041) 44 | 45 | 參考解答:[LIOJ 1041](lioj1041.js) 46 | 47 | ### 7. LIOJ 1042:String toLowerCase 48 | 49 | 題目連結:[LIOJ 1042:String toLowerCase](https://oj.lidemy.com/problem/1042) 50 | 51 | 參考解答:[LIOJ 1042](lioj1042.js) 52 | 53 | ### 8. LIOJ 1043:String endsWith 54 | 55 | 題目連結:[LIOJ 1043:String endsWith](https://oj.lidemy.com/problem/1043) 56 | 57 | 參考解答:[LIOJ 1043](lioj1043.js) 58 | 59 | ### 9. LIOJ 1044:String padEnd 60 | 61 | 題目連結:[LIOJ 1044:String padEnd](https://oj.lidemy.com/problem/1044) 62 | 63 | 參考解答:[LIOJ 1044](lioj1044.js) 64 | 65 | ### 10. LIOJ 1045:String slice 66 | 67 | 題目連結:[LIOJ 1045:String slice](https://oj.lidemy.com/problem/1045) 68 | 69 | 參考解答:[LIOJ 1045](lioj1045.js) 70 | 71 | -------------------------------------------------------------------------------- /unit0/README.md: -------------------------------------------------------------------------------- 1 | # Unit0:課程簡介 2 | 3 | 簡單介紹一下課程內容以及每一個單元會學到的東西,整堂課的重點說穿了就是兩個: 4 | 5 | 1. 熟練程式基礎語法(變數、陣列、判斷式、迴圈以及函式) 6 | 2. 熟練程式思維 7 | 8 | 這個課程循序漸進,所以建議不要跳著看。 9 | 10 | 前兩個單元會帶你認識程式思維,完全不寫程式,透過寫下步驟以及看程式碼這兩個方式培養程式思維 11 | 12 | 第三個單元讓你在解題以前先培養正確觀念,而不是急著開始解題 13 | 14 | 第四單元才開始慢慢教寫程式,第五單元練習經典題目,第六單元藉由實作內建函式持續熟悉基本語法,第七單元藉由 NPSC 繼續鍛鍊,第八單元用最慢最直覺的方法來解題,第九單元是尾聲,讓大家看看之後要學習什麼 15 | 16 | ## Unit0.0:什麼人適合這堂課? 17 | 18 | 1. 一定要先會寫程式,要知道以下幾種東西:變數、判斷式、迴圈、函式,只要這些就夠了 19 | 2. 寫 leetcode 寫不出來,或是想把基礎打好 20 | 21 | 這堂課是給初學者中的初學者,尤其是那些對於解題的思考模式十分不熟練的人。整堂課裡面會教到的題目,我自己預計大概只涵蓋到「大一程式課必修期中考以前」而已,所以難度其實不高。 22 | 23 | 另外,為了幫助大家判斷自己的程度是否適合參與這堂課,我有做了一個小測驗,一共五題的題目,可以給自己三個小時,看能否把五題都解出來:[LidemyOJ 程度測驗](https://oj.lidemy.com/problem?tag=%E7%A8%8B%E5%BA%A6%E6%B8%AC%E9%A9%97&page=1)。 24 | 25 | 因為 LidemyOJ(以後都簡稱 LIOJ)要使用的話需要先學如何讀取輸入以及輸出答案,這個要等到 Unit0.3 才會介紹到。 26 | 27 | 若是不想先花時間學這個,可以只看題目就好。如果發現自己連題目都看不懂或者是看了以後完全沒想法,代表你很適合這堂課。 28 | 29 | ## Unit0.1:為什麼要上這堂課? 30 | 31 | 最近刷題風潮興起,我不是反對刷題,你要刷題當然可以,但我覺得太多新手根本就是越級打怪,以目前的程度來講,刷再多 leetcode 題目也沒有用。 32 | 33 | 為什麼沒用?因為基本功沒有打好,若是連上面程度測驗那些水題都解不出來,去寫那些 leetcode 題目有什麼用? 34 | 35 | 打好基礎,一步一步來,每個人的起跑點都不一樣,這門課是給新手中的新手 36 | 一定會有些人覺得這堂課教得太簡單,那其實很好,代表你對程式思維很有概念。但我深信這堂課可以幫到很多初學者,很多沒有人去幫助的初學者。 37 | 38 | 為什麼這塊被忽略了?因為對很多人來說,他們無法理解為什麼有人不會這些。但在我的教學過程中,的確發現有很多人不會這些東西,這也是我開課的原因。 39 | 40 | ## Unit0.2:課程進行方式 41 | 42 | ### Step 1. 看課程影片 43 | 44 | 透過看課程影片理解這個單元的教學內容。 45 | 46 | ### Step 2. 實戰練習 47 | 48 | 每一個單元都會有至少三題的實戰練習,在影片開始之前會附上題目,建議大家在觀看影片前就自己先想過,這樣效果最佳。 49 | 50 | ### Step 3. 作業練習 51 | 52 | 有作業練習,會把題目放在 [LIOJ](https://oj.lidemy.com/problem),可以自行提交答案。每一個作業都會有檢討以及參考解答,一樣建議先思考完題目再來看檢討影片,參考解答會放在 GitHub 上。 53 | 54 | ## Unit0.3:Project0 介紹 55 | 56 | Project0 的目的是為了讓大家熟悉 LIOJ 的操作,只要完成 [LIOJ1001](https://oj.lidemy.com/problem/1001) 以及[LIOJ1002](https://oj.lidemy.com/problem/1002) 即可。 57 | 58 | [LIOJ 操作教學影片](https://www.youtube.com/watch?v=v7zv1ixaO3M) 59 | 60 | -------------------------------------------------------------------------------- /unit5/examples/lioj1033.js: -------------------------------------------------------------------------------- 1 | var readline = require('readline'); 2 | var rl = readline.createInterface({ 3 | input: process.stdin 4 | }); 5 | 6 | var lines = [] 7 | 8 | // 讀取到一行,先把這一行加進去 lines 陣列,最後再一起處理 9 | rl.on('line', function (line) { 10 | lines.push(line) 11 | }); 12 | 13 | // 輸入結束,開始針對 lines 做處理 14 | rl.on('close', function() { 15 | solve(lines) 16 | }) 17 | 18 | // 上面都不用管,只需要完成這個 function 就好,可以透過 lines[i] 拿取內容 19 | function solve(lines) { 20 | let n = Number(lines[0]) 21 | let dots = [] 22 | for(let i=1; i ans.x2) { 50 | console.log(ans.x2 + ' ' + ans.y2) 51 | console.log(ans.x1 + ' ' + ans.y1) 52 | } else if (ans.x1 < ans.x2) { 53 | console.log(ans.x1 + ' ' + ans.y1) 54 | console.log(ans.x2 + ' ' + ans.y2) 55 | } else { 56 | if (ans.y1 > ans.y2) { 57 | console.log(ans.x2 + ' ' + ans.y2) 58 | console.log(ans.x1 + ' ' + ans.y1) 59 | } else { 60 | console.log(ans.x1 + ' ' + ans.y1) 61 | console.log(ans.x2 + ' ' + ans.y2) 62 | } 63 | } 64 | } 65 | 66 | function distance(x1, y1, x2, y2) { 67 | let dis = Math.sqrt( 68 | abs(x1-x2) * abs(x1-x2) + 69 | abs(y1-y2) * abs(y1-y2) 70 | ) 71 | return dis 72 | } 73 | 74 | function abs(n) { 75 | if (n < 0) { 76 | return -n 77 | } 78 | return n 79 | } 80 | -------------------------------------------------------------------------------- /unit2/README.md: -------------------------------------------------------------------------------- 1 | # Unit2:寫程式之前,先學會「看程式」 2 | 3 | 「看程式碼」指的不是掃過去而已 4 | 而是你在看的時候,就會知道程式碼是怎麼執行的了 5 | 所以這一個單元要讓大家知道程式碼執行流程 6 | 7 | ## Unit2.1:你其實看不懂程式碼 8 | 9 | 給兩個範例(虛擬碼): 10 | 11 | 1. 陣列總和 12 | 2. 找最大值 13 | 14 | 練習一行一行跑 15 | 16 | ## Unit2.2:人體編譯器 17 | 18 | 給真的程式碼,範例同上 19 | 20 | 21 | ## Unit2.3:Debug 神器:Debugger 22 | 23 | chrome devtool debugger 的使用,範例同上 24 | 25 | 26 | ## Unit2.4:Log 雖可恥但有用 27 | 28 | 傳授 log 大法,log 加好加滿就對了 29 | 30 | ## Unit2.5:實戰練習:找次大值 31 | 32 | 直接提供答案,手動模擬電腦執行 33 | 34 | ## Unit2.6:實戰練習:字串轉大寫 35 | 36 | 直接提供答案,手動模擬電腦執行 37 | 38 | ## Unit2.7:實戰練習:刪除特定字元 39 | 40 | 直接提供答案,手動模擬電腦執行 41 | 42 | ## Unit2.8:Project2 介紹 43 | 44 | 人體編譯器 45 | 46 | 出三個作業,給程式碼讓他們一行行寫下執行流程,記得附上參考解答 47 | 48 | 作業題目: 49 | 50 | ### 1. 找次小值 51 | 52 | 給一個陣列,裡面全都包含了數字(整數),請輸出陣列中的次小值 53 | 範例輸入:[1, 2, 3] 54 | 範例輸出:2 55 | 56 | ``` js 57 | let arr = [10, 8, 6] 58 | let min = Infinity 59 | let min2 = Infinity 60 | for(let i=0; i= 97 && code <= 122) { 83 | ans += String.fromCharCode(code - 32) 84 | } else if (code >= 65 && code <= 90) { 85 | ans += String.fromCharCode(code + 32) 86 | } else { 87 | ans += str[i] 88 | } 89 | } 90 | console.log(ans) 91 | ``` 92 | 93 | ## 3. 印出因數 94 | 95 | 給一個正整數,請輸出他的所有因數 96 | 範例輸入:15 97 | 範例輸出: 98 | 99 | ``` 100 | 1 101 | 3 102 | 5 103 | 15 104 | ``` 105 | 106 | ```js 107 | let num = 30 108 | for(let i=1; i<=num; i++) { 109 | if (num % i === 0) { 110 | console.log(i) 111 | } 112 | } 113 | ``` 114 | -------------------------------------------------------------------------------- /public/component---node-modules-gatsby-theme-mdx-deck-src-templates-decks-js-b4b8473d9a60847c7209.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["webpack:///./node_modules/gatsby-theme-mdx-deck/src/components/decks.js","webpack:///./node_modules/gatsby-theme-mdx-deck/src/templates/decks.js"],"names":["decks","sx","fontFamily","fontWeight","px","py","p","d","key","my","to","color","textDecoration","pageContext","props"],"mappings":"sMAIe,cAAgB,IAAbA,EAAY,EAAZA,MAChB,OACE,mBACEC,GAAI,CACFC,WADE,KAEFC,WAFE,OAGFC,GAHE,EAIFC,GAAI,IAEN,sBAPF,YAQE,kBACEJ,GAAI,CACFK,EAAG,IAEJN,EAAA,KAAU,SAAAO,GAAC,OACV,kBACEC,IAAKD,EADP,GAEEN,GAAI,CACFQ,GAAI,IAEN,oBACEC,GAAIH,EADN,KAEEN,GAAI,CACFU,MADE,UAEFC,eAFE,OAGF,SAAU,CACRA,eAAgB,eAGnBL,SAAWA,EAfN,a,+MCfL,sBAAgC,IAA7BM,EAA4B,EAA5BA,YAAgBC,E,oIAAY,oBACtCd,EAAQa,EAAA,WAAsB,SAAAN,GAAC,OAAIA,EAAJ,QAErC,OAAO,sBAAkBP,MAAOA","file":"component---node-modules-gatsby-theme-mdx-deck-src-templates-decks-js-b4b8473d9a60847c7209.js","sourcesContent":["/** @jsx jsx */\nimport { jsx } from 'theme-ui'\nimport { Link } from 'gatsby'\n\nexport default ({ decks }) => {\n return (\n \n

MDX Deck

\n \n {decks.map(d => (\n \n \n {d.title || d.slug}\n \n \n ))}\n \n \n )\n}\n","import React from 'react'\nimport Decks from '../components/decks'\n\nexport default ({ pageContext, ...props }) => {\n const decks = pageContext.decks.map(d => d.node)\n\n return \n}\n"],"sourceRoot":""} -------------------------------------------------------------------------------- /unit6/README.md: -------------------------------------------------------------------------------- 1 | # Unit6:內建函式做做看 2 | 3 | 之前不讓大家用這些內建函式,是害怕大家會陷入一個困境 4 | 那就是解題的時候不去想解法,而是想說:「這題可不可以用 xxx 解?」 5 | 6 | 但本質上他們是一樣的,你用內建函式可以做到的功能,for 迴圈搭配 if else 幾乎都做得到 7 | 因此,這一個單元要來實作這些內建函式,當你能夠實作出他們以後,之後就放心地用吧! 8 | 9 | ## Unit6.1:練習實作內建函式 10 | ## Unit6.2:實戰:Array.map 11 | ## Unit6.3:實戰:String.repeat 12 | ## Unit6.4:實戰:Array.lastIndexOf 13 | 14 | ## Unit6.5:Project6 介紹 15 | 16 | Project6 會實作一些常見的內建函式的功能,題目列表如下: 17 | 18 | 1. [LIOJ 1036:Array reverse](https://oj.lidemy.com/problem/1036) 19 | 2. [LIOJ 1037:Array filter](https://oj.lidemy.com/problem/1037) 20 | 3. [LIOJ 1038:Array indexOf](https://oj.lidemy.com/problem/1038) 21 | 4. [LIOJ 1039:Array fill](https://oj.lidemy.com/problem/1039) 22 | 5. [LIOJ 1040:Array join](https://oj.lidemy.com/problem/1040) 23 | 6. [LIOJ 1041:String trim](https://oj.lidemy.com/problem/1041) 24 | 7. [LIOJ 1042:String toLowerCase](https://oj.lidemy.com/problem/1042) 25 | 8. [LIOJ 1043:String endsWith](https://oj.lidemy.com/problem/1043) 26 | 9. [LIOJ 1044:String padEnd](https://oj.lidemy.com/problem/1044) 27 | 10. [LIOJ 1045:String slice](https://oj.lidemy.com/problem/1045) 28 | 29 | 底下提供了基本的程式碼,最好能夠以這個格式來實作,但如果覺得很卡或是不順手,不一定要 follow: 30 | 31 | ```js 32 | // LIOJ 1036:Array reverse 33 | function reverse(arr) { 34 | 35 | } 36 | 37 | // LIOJ 1037:Array filter 38 | // 這題 callback 會是一個 function,但難度會比較高 39 | // 若是做不出來,也可以調整參數 40 | function filter(arr, callback) { 41 | 42 | } 43 | 44 | // LIOJ 1038:Array indexOf 45 | function indexOf(arr, searchElement) { 46 | 47 | } 48 | 49 | // LIOJ 1039:Array fill 50 | function fill(arr, value) { 51 | 52 | } 53 | 54 | // LIOJ 1040:Array join 55 | function join(arr, separator) { 56 | 57 | } 58 | 59 | // LIOJ 1041:String trim 60 | function trim(str) { 61 | 62 | } 63 | 64 | // LIOJ 1042:String toLowerCase 65 | function toLowerCase(str) { 66 | 67 | } 68 | 69 | // LIOJ 1043:String endsWith 70 | function endsWith(str, searchString) { 71 | 72 | } 73 | 74 | // LIOJ 1044:String padEnd 75 | function padEnd(str, targetLength, padString) { 76 | 77 | } 78 | 79 | // LIOJ 1045:String slice 80 | function slice(str, beginIndex, endIndex) { 81 | 82 | } 83 | ``` 84 | -------------------------------------------------------------------------------- /slides/unit0.mdx: -------------------------------------------------------------------------------- 1 | import Lidemy from './theme' 2 | import { CodeSurferColumns, Step } from "code-surfer" 3 | import { nightOwl } from "@code-surfer/themes" 4 | import Layout from './Layout' 5 | import Fullscreen from './fullscreen' 6 | 7 | export const themes = [ Lidemy ] 8 | 9 | 10 | 11 | 12 | 13 | # 先別急著寫 leetcode 14 | ## Unit0:課程簡介 15 | 16 | 17 | 18 | --- 19 | 20 | # 為什麼想開這堂課? 21 | 22 | --- 23 | 24 | # 課程內容 25 | 26 | 1. 熟練程式基礎語法 27 | 2. 熟練程式思維 28 | 29 | --- 30 | 31 | # 培養觀念 32 | 33 | * Unit1:要學好程式,從不要寫程式開始 34 | * Unit2:寫程式之前,先學會「看程式」 35 | * Unit3:寫程式前的最後一步:看懂題目 36 | 37 | --- 38 | 39 | # 基礎練習 40 | 41 | * Unit4:主角總是最後才登場:寫程式囉 42 | * Unit5:經典題目解解看 43 | * Unit6:內建函式做做看 44 | * Unit7:國中題目大挑戰 45 | 46 | --- 47 | 48 | # 展望未來 49 | 50 | * Unit8:初學者只管拿分,誰管你什麼效率 51 | * Unit9:未來的路還很漫長,你還差得遠呢 52 | 53 | --- 54 | 55 | # 課程目標 56 | 57 | 覺得 [LidemyOJ](https://oj.lidemy.com/problem) 上的題目都很簡單 58 | 59 | --- 60 | 61 | 62 | 63 | # 先別急著寫 leetcode 64 | ## Unit0.0:什麼人適合這堂課? 65 | 66 | 67 | 68 | --- 69 | 70 | # 誰適合這堂課? 71 | 72 | 1. 已經有程式基礎 73 | 2. 寫 leetcode 碰到嚴重障礙 74 | 3. 寫不出九九乘法表 75 | 76 | --- 77 | 78 | # 誰不適合這堂課? 79 | 80 | 1. 寫 leetcode 沒什麼太大的問題 81 | 2. 覺得「程度測驗」的東西都很簡單 82 | 83 | --- 84 | 85 | # [程度測驗](https://oj.lidemy.com/problem?tag=%E7%A8%8B%E5%BA%A6%E6%B8%AC%E9%A9%97&page=1) 86 | 87 | --- 88 | 89 | 90 | 91 | # 先別急著寫 leetcode 92 | ## Unit0.1:為什麼要上這堂課? 93 | 94 | 95 | 96 | --- 97 | 98 | # 還沒學會走,你要怎麼跑? 99 | 100 | --- 101 | 102 | 103 | 104 | # 先別急著寫 leetcode 105 | ## Unit0.2:課程進行方式 106 | 107 | 108 | 109 | --- 110 | 111 | # Step 1. 看課程影片 112 | 113 | --- 114 | 115 | # Step 2. 實戰練習 116 | 117 | --- 118 | 119 | # Step 3. 作業練習 120 | 121 | --- 122 | 123 | 124 | 125 | # 先別急著寫 leetcode 126 | ## Unit0.3:Project0 介紹 127 | 128 | 129 | 130 | --- 131 | 132 | # 完成以下題目 133 | 134 | 1. [LIOJ1001](https://oj.lidemy.com/problem/1001) 135 | 2. [LIOJ1002](https://oj.lidemy.com/problem/1002) 136 | 137 | [LIOJ 操作教學影片](https://www.youtube.com/watch?v=v7zv1ixaO3M) -------------------------------------------------------------------------------- /slides/unit7.mdx: -------------------------------------------------------------------------------- 1 | import Lidemy from './theme' 2 | import { CodeSurfer, Step, CodeSurferColumns } from "code-surfer" 3 | import Layout from './Layout' 4 | import Fullscreen from './Fullscreen' 5 | 6 | export const themes = [Lidemy] 7 | 8 | 9 | 10 | 11 | 12 | # 先別急著寫 leetcode 13 | ## Unit7:國中題目大挑戰 14 | 15 | 16 | 17 | --- 18 | 19 | 20 | 21 | # 先別急著寫 leetcode 22 | ## Unit7.1:NPSC 是什麼? 23 | 24 | 25 | 26 | --- 27 | 28 | # [NPSC](https://contest.cc.ntu.edu.tw/npsc2019/) 29 | 30 | --- 31 | 32 | # 特色 33 | 34 | 1. 有些題目適合初學者 35 | 2. 題目有趣且完整 36 | 3. 有完整測試資料 37 | 4. 可以從計分板看出難度 38 | 5. 我有參加過 39 | 40 | --- 41 | 42 | 43 | 44 | # 先別急著寫 leetcode 45 | ## Unit7.2:如何使用 NPSC 的測資? 46 | 47 | 48 | 49 | --- 50 | 51 | # 幸好你已經熟悉檔案 I/O 了 52 | 53 | --- 54 | 55 | ``` 56 | cat pa.in | node code.js | diff pa.out - 57 | ``` 58 | 59 | --- 60 | 61 | 62 | 63 | # 先別急著寫 leetcode 64 | ## Unit7.3:實戰:NPSC 2019 國中組初賽 65 | 66 | 67 | 68 | --- 69 | 70 | # [NPSC 2019](https://contest.cc.ntu.edu.tw/npsc2019/) 71 | 72 | --- 73 | 74 | 75 | 76 | # 先別急著寫 leetcode 77 | ## Unit7.4:實戰:NPSC 2008 國中組初賽 78 | 79 | 80 | 81 | --- 82 | 83 | # [NPSC 2008](https://contest.cc.ntu.edu.tw/npsc2008/) 84 | 85 | --- 86 | 87 | 88 | 89 | # 先別急著寫 leetcode 90 | ## Unit7.5:Project7 介紹 91 | 92 | 93 | 94 | --- 95 | 96 | # Project7 97 | 98 | 請參考[這邊](https://github.com/Lidemy/ALG101-too-weak-to-leetcode/tree/master/unit7) 99 | 100 | --- 101 | 102 | 103 | 104 | # 先別急著寫 leetcode 105 | ## Project7:LIOJ 1008:幾個水桶 106 | 107 | 108 | 109 | --- 110 | 111 | 112 | 113 | # 先別急著寫 leetcode 114 | ## Project7:LIOJ 1009:Yo!倒著唸! 115 | 116 | 117 | 118 | --- 119 | 120 | 121 | 122 | # 先別急著寫 leetcode 123 | ## Project7:LIOJ 1013:搭電梯 124 | 125 | 126 | 127 | --- 128 | 129 | 130 | 131 | # 先別急著寫 leetcode 132 | ## Project7:LIOJ 1014:不九人世 133 | 134 | 135 | 136 | --- 137 | 138 | 139 | 140 | # 先別急著寫 leetcode 141 | ## Project7:LIOJ 1016:不合群的人 142 | 143 | 144 | 145 | -------------------------------------------------------------------------------- /slides/unit8.mdx: -------------------------------------------------------------------------------- 1 | import Lidemy from './theme' 2 | import { CodeSurfer, Step, CodeSurferColumns } from "code-surfer" 3 | import Layout from './Layout' 4 | import Fullscreen from './Fullscreen' 5 | 6 | export const themes = [Lidemy] 7 | 8 | 9 | 10 | 11 | 12 | # 先別急著寫 leetcode 13 | ## Unit8:初學者只管拿分,誰管你什麼效率 14 | 15 | 16 | 17 | --- 18 | 19 | # 初學者 20 | 21 | 先求有,再求好(真的要去求啦) 22 | 23 | --- 24 | 25 | 26 | 27 | # 先別急著寫 leetcode 28 | ## Unit8.1:淺談時間與空間複雜度 29 | 30 | 31 | 32 | --- 33 | 34 | # 該怎麼表示一個演算法的效率? 35 | 36 | 例如說...執行所需的時間? 37 | 38 | --- 39 | 40 | # 演算法效率 41 | 42 | 執行所需步驟與資料量 n 的關聯 43 | 44 | --- 45 | 46 | # 時間複雜度 47 | 48 | Big O 符號:O(n) 49 | 50 | 51 | --- 52 | 53 | # 空間複雜度 54 | 55 | 執行所需空間與資料量 n 的關聯 56 | 57 | --- 58 | 59 | # 時間 vs 空間 60 | 61 | 通常不可兩者兼得 62 | 63 | 1. 時間換空間 64 | 2. 空間換時間 65 | 66 | --- 67 | 68 | # 時間換空間 69 | 70 | 增加執行時間來節省空間 71 | 範例:排隊 72 | 73 | --- 74 | 75 | # 空間換時間 76 | 77 | 增加空間消耗來節省時間 78 | 範例:書本索引 79 | 80 | --- 81 | 82 | 83 | 84 | # 先別急著寫 leetcode 85 | ## Unit8.2:電腦比你想得厲害 86 | 87 | 88 | 89 | --- 90 | 91 | # 從 1 加到 1 億要多久? 92 | 93 | --- 94 | 95 | 96 | 97 | # 先別急著寫 leetcode 98 | ## Unit8.3:實戰:LIOJ 1035:簡易排序 99 | 100 | 101 | 102 | --- 103 | 104 | 105 | 106 | 107 | # 先別急著寫 leetcode 108 | ## Unit8.4:實戰:LIOJ 1047:搜尋數字 109 | 110 | 111 | 112 | --- 113 | 114 | 115 | 116 | 117 | # 先別急著寫 leetcode 118 | ## Unit8.5:實戰:LIOJ 1048:最大連續和 119 | 120 | 121 | 122 | --- 123 | 124 | 125 | 126 | # 先別急著寫 leetcode 127 | ## Unit8.6:Project8 介紹 128 | 129 | 130 | 131 | --- 132 | 133 | # Project8 134 | 135 | 請參考[這邊](https://github.com/Lidemy/ALG101-too-weak-to-leetcode/tree/master/unit8) 136 | 137 | --- 138 | 139 | 140 | 141 | # 先別急著寫 leetcode 142 | ## Project8:LIOJ 1049:陣列最短距離 143 | 144 | 145 | 146 | --- 147 | 148 | 149 | 150 | # 先別急著寫 leetcode 151 | ## Project8:LIOJ 1050:two sum 152 | 153 | 154 | 155 | --- 156 | 157 | 158 | 159 | # 先別急著寫 leetcode 160 | ## Project8:LIOJ 1051:逆序數對 161 | 162 | 163 | -------------------------------------------------------------------------------- /slides/theme.js: -------------------------------------------------------------------------------- 1 | export default { 2 | fonts: { 3 | body: 'Roboto, sans-serif', 4 | monospace: '"Roboto Mono", monospace', 5 | }, 6 | colors: { 7 | text: 'white', 8 | background: '#3F4A56', 9 | accent: '#2D9890', 10 | highlight: '#F34851' 11 | }, 12 | styles: { 13 | CodeSurfer: { 14 | tokens: { 15 | changed: { 16 | color: 'rgb(162, 191, 252)', 17 | fontStyle: 'italic' 18 | }, 19 | deleted: { 20 | color: 'rgba(239, 83, 80, 0.56)', 21 | fontStyle: 'italic' 22 | }, 23 | 'inserted attr-name': { 24 | color: 'rgb(173, 219, 103)', 25 | fontStyle: 'italic' 26 | }, 27 | comment: { 28 | color: 'rgb(99, 119, 119)', 29 | fontStyle: 'italic' 30 | }, 31 | 'string url': { 32 | color: 'rgb(173, 219, 103)' 33 | }, 34 | variable: { 35 | color: 'rgb(214, 222, 235)' 36 | }, 37 | number: { 38 | color: 'rgb(247, 140, 108)' 39 | }, 40 | 'builtin char constant function': { 41 | color: 'rgb(130, 170, 255)' 42 | }, 43 | punctuation: { 44 | //color: 'rgb(199, 146, 234)' 45 | }, 46 | 'selector doctype': { 47 | color: 'rgb(199, 146, 234)', 48 | fontStyle: 'italic' 49 | }, 50 | 'class-name': { 51 | color: 'rgb(255, 203, 139)' 52 | }, 53 | 'tag operator keyword': { 54 | color: 'rgb(127, 219, 202)' 55 | }, 56 | boolean: { 57 | color: 'rgb(255, 88, 116)' 58 | }, 59 | property: { 60 | color: 'rgb(128, 203, 196)' 61 | }, 62 | namespace: { 63 | color: 'rgb(178, 204, 214)' 64 | } 65 | }, 66 | title: { 67 | background: 'rgba(1, 22, 39, 0.8)', 68 | color: '#d6deeb' 69 | }, 70 | subtitle: { 71 | color: '#d6deeb' 72 | }, 73 | pre: { 74 | color: '#d6deeb' 75 | }, 76 | code: { 77 | color: '#d6deeb' 78 | } 79 | } 80 | } 81 | /*fontSizes: [ 82 | 12, 12, 14, 16, 20, 24, 32, 48 83 | ],*/ 84 | } -------------------------------------------------------------------------------- /public/webpack-runtime-6003cebeb46fe0c228e0.js: -------------------------------------------------------------------------------- 1 | !function(e){function t(t){for(var n,a,c=t[0],i=t[1],l=t[2],p=0,f=[];p先別急著寫 leetcode
-------------------------------------------------------------------------------- /public/ALG101-too-weak-to-leetcode/public/unit1/print/index.html: -------------------------------------------------------------------------------- 1 | 先別急著寫 leetcode
-------------------------------------------------------------------------------- /public/ALG101-too-weak-to-leetcode/public/unit2/print/index.html: -------------------------------------------------------------------------------- 1 | 先別急著寫 leetcode
-------------------------------------------------------------------------------- /public/ALG101-too-weak-to-leetcode/public/unit3/print/index.html: -------------------------------------------------------------------------------- 1 | 先別急著寫 leetcode
-------------------------------------------------------------------------------- /public/ALG101-too-weak-to-leetcode/public/unit4/print/index.html: -------------------------------------------------------------------------------- 1 | 先別急著寫 leetcode
-------------------------------------------------------------------------------- /public/ALG101-too-weak-to-leetcode/public/unit5/print/index.html: -------------------------------------------------------------------------------- 1 | 先別急著寫 leetcode
-------------------------------------------------------------------------------- /public/ALG101-too-weak-to-leetcode/public/unit6/print/index.html: -------------------------------------------------------------------------------- 1 | 先別急著寫 leetcode
-------------------------------------------------------------------------------- /public/ALG101-too-weak-to-leetcode/public/unit7/print/index.html: -------------------------------------------------------------------------------- 1 | 先別急著寫 leetcode
-------------------------------------------------------------------------------- /public/ALG101-too-weak-to-leetcode/public/unit8/print/index.html: -------------------------------------------------------------------------------- 1 | 先別急著寫 leetcode
-------------------------------------------------------------------------------- /public/ALG101-too-weak-to-leetcode/public/unit9/print/index.html: -------------------------------------------------------------------------------- 1 | 先別急著寫 leetcode
-------------------------------------------------------------------------------- /slides/unit6.mdx: -------------------------------------------------------------------------------- 1 | import Lidemy from './theme' 2 | import { CodeSurfer, Step, CodeSurferColumns } from "code-surfer" 3 | import Layout from './Layout' 4 | import Fullscreen from './Fullscreen' 5 | 6 | export const themes = [Lidemy] 7 | 8 | 9 | 10 | 11 | 12 | # 先別急著寫 leetcode 13 | ## Unit6:內建函式做做看 14 | 15 | 16 | 17 | --- 18 | 19 | 20 | 21 | # 先別急著寫 leetcode 22 | ## Unit6.1:練習實作內建函式 23 | 24 | 25 | 26 | --- 27 | 28 | # 理解內建函式 29 | 30 | --- 31 | 32 | 33 | 34 | # 先別急著寫 leetcode 35 | ## Unit6.2:實戰:Array.map 36 | 37 | 38 | 39 | --- 40 | 41 | 42 | 43 | ```js 44 | function double(n) { 45 | return n*2 46 | } 47 | 48 | let arr = [1, 2, 3] 49 | let newArr = arr.map(double) 50 | console.log(newArr) // [2, 4, 6] 51 | ``` 52 | 53 | ```diff 6 subtitle="傳進一個函式" 54 | ``` 55 | 56 | ```diff 7 subtitle="產生新陣列(不改變原來的)" 57 | ``` 58 | 59 | 60 | 61 | --- 62 | 63 | 64 | 65 | # 先別急著寫 leetcode 66 | ## Unit6.3:實戰:String.repeat 67 | 68 | 69 | 70 | --- 71 | 72 | ```js 73 | 'abc'.repeat(3) // abcabcabc 74 | ``` 75 | 76 | --- 77 | 78 | # 重點 79 | 80 | 內建函式「幾乎」都不會改變原本的值 81 | 82 | --- 83 | 84 | 85 | 86 | # 先別急著寫 leetcode 87 | ## Unit6.4:實戰:Array.lastIndexOf 88 | 89 | 90 | 91 | --- 92 | 93 | 94 | 95 | # 先別急著寫 leetcode 96 | ## Unit6.5:Project6 介紹 97 | 98 | 99 | 100 | --- 101 | 102 | # Project6 103 | 104 | 請參考[這邊](https://github.com/Lidemy/ALG101-too-weak-to-leetcode/tree/master/unit6) 105 | 支援「最基本」的參數即可 106 | 107 | --- 108 | 109 | 110 | 111 | # 先別急著寫 leetcode 112 | ## Project6:LIOJ 1036:Array reverse 113 | 114 | 115 | 116 | --- 117 | 118 | 119 | 120 | # 先別急著寫 leetcode 121 | ## Project6:LIOJ 1037:Array filter 122 | 123 | 124 | 125 | --- 126 | 127 | 128 | 129 | # 先別急著寫 leetcode 130 | ## Project6:LIOJ 1038:Array indexOf 131 | 132 | 133 | 134 | --- 135 | 136 | 137 | 138 | # 先別急著寫 leetcode 139 | ## Project6:LIOJ 1039:Array fill 140 | 141 | 142 | 143 | --- 144 | 145 | 146 | 147 | # 先別急著寫 leetcode 148 | ## Project6:LIOJ 1040:Array join 149 | 150 | 151 | 152 | --- 153 | 154 | 155 | 156 | # 先別急著寫 leetcode 157 | ## Project6:LIOJ 1041:String trim 158 | 159 | 160 | 161 | --- 162 | 163 | 164 | 165 | # 先別急著寫 leetcode 166 | ## Project6:LIOJ 1042:String toLowerCase 167 | 168 | 169 | 170 | --- 171 | 172 | 173 | 174 | # 先別急著寫 leetcode 175 | ## Project6:LIOJ 1043:String endsWith 176 | 177 | 178 | 179 | --- 180 | 181 | 182 | 183 | # 先別急著寫 leetcode 184 | ## Project6:LIOJ 1044:String padEnd 185 | 186 | 187 | 188 | --- 189 | 190 | 191 | 192 | # 先別急著寫 leetcode 193 | ## Project6:LIOJ 1045:String slice 194 | 195 | 196 | 197 | -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 |

MDX Deck

-------------------------------------------------------------------------------- /slides/unit5.mdx: -------------------------------------------------------------------------------- 1 | import Lidemy from './theme' 2 | import { CodeSurfer, Step, CodeSurferColumns } from "code-surfer" 3 | import Layout from './Layout' 4 | import Fullscreen from './Fullscreen' 5 | 6 | export const themes = [Lidemy] 7 | 8 | 9 | 10 | 11 | 12 | # 先別急著寫 leetcode 13 | ## Unit5:經典題目解解看 14 | 15 | 16 | 17 | --- 18 | 19 | 20 | 21 | # 先別急著寫 leetcode 22 | ## Unit5.1:達到什麼程度才能解經典題目? 23 | 24 | 25 | 26 | --- 27 | 28 | # 寫程式三寶 29 | 30 | 迴圈、函式、判斷式 31 | 32 | --- 33 | 34 | # 經典題目 35 | 36 | 拿來熟悉程式基礎語法 37 | 因此,「基本上」禁止使用內建函式 38 | 39 | --- 40 | 41 | 42 | 43 | # 先別急著寫 leetcode 44 | ## Unit5.2:實戰:判斷等差數列 45 | 46 | 47 | 48 | --- 49 | 50 | # 等差數列 51 | 52 | 公差一樣:1, 3, 5, 7, 9 53 | 54 | --- 55 | 56 | # 解題流程 57 | 58 | 1. 先算出 `arr[1] - arr[0]` 當作公差 59 | 2. 判斷 `arr[i] - arr[i-1]` 是否等於公差 60 | 61 | --- 62 | 63 | # Live coding 64 | 65 | --- 66 | 67 | # Edge case 68 | 69 | 1. 空陣列 70 | 2. 只有一個元素的陣列 71 | 72 | --- 73 | 74 | 75 | 76 | # 先別急著寫 leetcode 77 | ## Unit5.3:實戰:身分證驗證 78 | 79 | 80 | 81 | --- 82 | 83 | [驗證規則 wiki](https://zh.wikipedia.org/wiki/%E4%B8%AD%E8%8F%AF%E6%B0%91%E5%9C%8B%E5%9C%8B%E6%B0%91%E8%BA%AB%E5%88%86%E8%AD%89) 84 | 85 | --- 86 | 87 | # Live coding 88 | 89 | --- 90 | 91 | # Edge case 92 | 1. 處理不合法的輸入 93 | 94 | --- 95 | 96 | 97 | 98 | # 先別急著寫 leetcode 99 | ## Unit5.4:實戰:數字位數加總 100 | 101 | 102 | 103 | --- 104 | 105 | # 解題方法 106 | 107 | 1. 數學解 108 | 2. 字串偷吃步解 109 | 110 | --- 111 | 112 | # Live coding 113 | 114 | --- 115 | 116 | 117 | 118 | # 先別急著寫 leetcode 119 | ## Unit5.5:Project5 介紹 120 | 121 | 122 | 123 | --- 124 | 125 | # Project5 126 | 127 | 請參考[這邊](https://github.com/Lidemy/ALG101-too-weak-to-leetcode/tree/master/unit5) 128 | 129 | --- 130 | 131 | 132 | 133 | # 先別急著寫 leetcode 134 | ## Project5:LIOJ 1026:判斷等比數列 135 | 136 | 137 | 138 | --- 139 | 140 | 141 | 142 | # 先別急著寫 leetcode 143 | ## Project5:LIOJ 1027:信用卡號驗證 144 | 145 | 146 | 147 | --- 148 | 149 | 150 | 151 | # 先別急著寫 leetcode 152 | ## Project5:LIOJ 1028:生命靈數 153 | 154 | 155 | 156 | --- 157 | 158 | 159 | 160 | # 先別急著寫 leetcode 161 | ## Project5:LIOJ 1029:加減乘除 162 | 163 | 164 | 165 | --- 166 | 167 | 168 | 169 | # 先別急著寫 leetcode 170 | ## Project5:LIOJ 1030:判斷迴文 171 | 172 | 173 | 174 | --- 175 | 176 | 177 | 178 | # 先別急著寫 leetcode 179 | ## Project5:LIOJ 1031:完全平方和 180 | 181 | 182 | 183 | --- 184 | 185 | 186 | 187 | # 先別急著寫 leetcode 188 | ## Project5:LIOJ 1032:平面距離計算 189 | 190 | 191 | 192 | --- 193 | 194 | 195 | 196 | # 先別急著寫 leetcode 197 | ## Project5:LIOJ 1033:最近點對 198 | 199 | 200 | 201 | --- 202 | 203 | 204 | 205 | # 先別急著寫 leetcode 206 | ## Project5:LIOJ 1034:凱薩加密 207 | 208 | 209 | 210 | --- 211 | 212 | 213 | 214 | # 先別急著寫 leetcode 215 | ## Project5:LIOJ 1046:圈圈叉叉 216 | 217 | 218 | 219 | -------------------------------------------------------------------------------- /slides/unit3.mdx: -------------------------------------------------------------------------------- 1 | import Lidemy from './theme' 2 | import { CodeSurfer, Step, CodeSurferColumns } from "code-surfer" 3 | import Layout from './Layout' 4 | import Fullscreen from './Fullscreen' 5 | 6 | export const themes = [Lidemy] 7 | 8 | 9 | 10 | 11 | 12 | # 先別急著寫 leetcode 13 | ## Unit3:寫程式前的最後一步:看懂題目 14 | 15 | 16 | 17 | --- 18 | 19 | 20 | 21 | # 先別急著寫 leetcode 22 | ## Unit3.1:弄清題意,翻成白話文 23 | 24 | 25 | 26 | --- 27 | 28 | ## 大部分題目,都是用一堆故事來包裝 29 | 這就是為什麼比較有趣 30 | 31 | --- 32 | 33 | ## 考驗程式能力前,先考驗閱讀能力 34 | 35 | --- 36 | 37 | [LIOJ 1008:幾個水桶](https://oj.lidemy.com/problem/1008) 38 | 39 | --- 40 | 41 | 42 | 43 | # 先別急著寫 leetcode 44 | ## Unit3.2:最重要的小事:輸入範圍 45 | 46 | 47 | 48 | --- 49 | 50 | # 輸入範圍為什麼重要? 51 | 52 | --- 53 | 54 | ## 雙層公寓 vs 台北 101 55 | 56 | --- 57 | 58 | ## 小飛機 vs 空中巴士 A380 59 | 60 | --- 61 | 62 | ## 不同範圍 = 不同限制 63 | 64 | --- 65 | 66 | 1. 空間限制 67 | 2. 時間限制 68 | 3. 型態限制 69 | 70 | --- 71 | 72 | # 空間估算 73 | 74 | * int: 4 bytes 75 | * double: 8 bytes 76 | * JS 中的 Number:8 bytes 77 | 78 | --- 79 | 80 | # 一百萬個數字 81 | 82 | (8 * 1e6) / 1024 = 7812 KB 83 | = 7.6 MB 84 | 85 | --- 86 | 87 | # 十億個數字 88 | 89 | (8 * 1e8) / 1024 = 781200 KB 90 | = 7600 MB = 7.4 GB 91 | 92 | --- 93 | 94 | # 範圍決定方法 95 | 96 | 排序十萬個數字,可以全都載入到記憶體 97 | 但如果要排十億個數字呢? 98 | 99 | --- 100 | 101 | # 時間限制 102 | 103 | 對初學題目來說不太重要(先求有再求好) 104 | 以後講到 big O 的時候就很重要 105 | 106 | --- 107 | 108 | # 範圍決定方法 109 | 110 | 排序一百萬個數字跟排序十個數字 111 | 用的方法不一樣 112 | 113 | --- 114 | 115 | [LIOJ 1004:聯誼順序比大小](https://oj.lidemy.com/problem/1004) 116 | 117 | --- 118 | 119 | # 型態限制 120 | 121 | 1. int: -2147483648 ~ 2147483647 122 | 2. JS 數字: Number.MAX_SAFE_INTEGER 123 | 3. 浮點數精準度問題 124 | 125 | --- 126 | 127 | # 範圍決定方法 128 | 129 | 20 位數的數字比大小 130 | 跟 200 位數的數字比大小不一樣 131 | 132 | --- 133 | 134 | ## 把範圍講清楚的題目,才是好題目 135 | ### 沒有的話就問清楚 136 | 137 | --- 138 | 139 | 140 | 141 | # 先別急著寫 leetcode 142 | ## Unit3.3:輸入與輸出方式 143 | 144 | 145 | 146 | --- 147 | 148 | # 1. 以函式為主 149 | 150 | --- 151 | 152 | # 2. 以標準輸出入為主 153 | 154 | --- 155 | 156 | `cat input.txt | node code.js` 157 | 158 | --- 159 | 160 | 161 | 162 | # 先別急著寫 leetcode 163 | ## Unit3.4:Project3 介紹 164 | 165 | 166 | 167 | --- 168 | 169 | 用白話文改寫 170 | 並提出可能會有問題的地方 171 | 172 | --- 173 | 174 | 1. [LIOJ 1010:靈魂伴侶](https://oj.lidemy.com/problem/1010) 175 | 2. [LIOJ 1015:音速小子](https://oj.lidemy.com/problem/1015) 176 | 3. [LIOJ 1017:貪婪的小偷](https://oj.lidemy.com/problem/1017) 177 | 178 | --- 179 | 180 | # 解答篇 181 | 182 | 底下有雷,請先完成作業再觀看 183 | 184 | --- 185 | 186 | 187 | 188 | # 先別急著寫 leetcode 189 | ## Project3:LIOJ 1010:靈魂伴侶 190 | 191 | 192 | 193 | --- 194 | 195 | # 判斷兩數是否相等 196 | 197 | 數字範圍沒有該注意的地方 198 | 199 | --- 200 | 201 | 202 | 203 | # 先別急著寫 leetcode 204 | ## Project3:LIOJ 1015:音速小子 205 | 206 | 207 | 208 | --- 209 | 210 | # 把一個數字乘 340 211 | 212 | 數字範圍沒有該注意的地方 213 | 214 | --- 215 | 216 | 217 | 218 | # 先別急著寫 leetcode 219 | ## Project3:LIOJ 1017:貪婪的小偷 220 | 221 | 222 | 223 | --- 224 | 225 | # 取價值最高的 C 項物品 226 | 227 | -------------------------------------------------------------------------------- /public/webpack.stats.json: -------------------------------------------------------------------------------- 1 | {"errors":[],"warnings":["./slides/Fullscreen.js\nThere are multiple modules with names that only differ in casing.\nThis can lead to unexpected behavior when compiling on a filesystem with other case-semantic.\nUse equal casing. Compare these module identifiers:\n* /Users/huli/Documents/lidemy/alg101/ALG101-too-weak-to-leetcode/node_modules/gatsby/dist/utils/babel-loader.js??ref--4-0!/Users/huli/Documents/lidemy/alg101/ALG101-too-weak-to-leetcode/node_modules/gatsby/dist/utils/babel-loader.js??ref--19!/Users/huli/Documents/lidemy/alg101/ALG101-too-weak-to-leetcode/node_modules/gatsby/dist/utils/babel-loader.js??ref--20!/Users/huli/Documents/lidemy/alg101/ALG101-too-weak-to-leetcode/slides/Fullscreen.js\n Used by 2 module(s), i. e.\n /Users/huli/Documents/lidemy/alg101/ALG101-too-weak-to-leetcode/node_modules/gatsby/dist/utils/babel-loader.js??ref--4-0!/Users/huli/Documents/lidemy/alg101/ALG101-too-weak-to-leetcode/node_modules/gatsby/dist/utils/babel-loader.js??ref--13-0!/Users/huli/Documents/lidemy/alg101/ALG101-too-weak-to-leetcode/node_modules/gatsby/dist/utils/babel-loader.js??ref--19!/Users/huli/Documents/lidemy/alg101/ALG101-too-weak-to-leetcode/node_modules/gatsby/dist/utils/babel-loader.js??ref--20!/Users/huli/Documents/lidemy/alg101/ALG101-too-weak-to-leetcode/.cache/caches/gatsby-plugin-mdx/mdx-scopes-dir/bcecb7ba887fe607387e42f2b4d6b39a.js\n* /Users/huli/Documents/lidemy/alg101/ALG101-too-weak-to-leetcode/node_modules/gatsby/dist/utils/babel-loader.js??ref--4-0!/Users/huli/Documents/lidemy/alg101/ALG101-too-weak-to-leetcode/node_modules/gatsby/dist/utils/babel-loader.js??ref--19!/Users/huli/Documents/lidemy/alg101/ALG101-too-weak-to-leetcode/node_modules/gatsby/dist/utils/babel-loader.js??ref--20!/Users/huli/Documents/lidemy/alg101/ALG101-too-weak-to-leetcode/slides/fullscreen.js\n Used by 4 module(s), i. e.\n /Users/huli/Documents/lidemy/alg101/ALG101-too-weak-to-leetcode/node_modules/gatsby/dist/utils/babel-loader.js??ref--4-0!/Users/huli/Documents/lidemy/alg101/ALG101-too-weak-to-leetcode/node_modules/gatsby/dist/utils/babel-loader.js??ref--13-0!/Users/huli/Documents/lidemy/alg101/ALG101-too-weak-to-leetcode/node_modules/gatsby/dist/utils/babel-loader.js??ref--19!/Users/huli/Documents/lidemy/alg101/ALG101-too-weak-to-leetcode/node_modules/gatsby/dist/utils/babel-loader.js??ref--20!/Users/huli/Documents/lidemy/alg101/ALG101-too-weak-to-leetcode/.cache/caches/gatsby-plugin-mdx/mdx-scopes-dir/086c0f6620bc114219cbdc87d778320f.js"],"namedChunkGroups":{"app":{"chunks":[4,1,0],"assets":["webpack-runtime-6003cebeb46fe0c228e0.js","webpack-runtime-6003cebeb46fe0c228e0.js.map","commons-17850e880a30a9454e8a.js","commons-17850e880a30a9454e8a.js.map","app-2bf9d62b7e38bcaf85d6.js","app-2bf9d62b7e38bcaf85d6.js.map"],"children":{},"childAssets":{}},"component---node-modules-gatsby-theme-mdx-deck-src-templates-deck-js":{"chunks":[2],"assets":["component---node-modules-gatsby-theme-mdx-deck-src-templates-deck-js-661b4b4564b03d8f828b.js","component---node-modules-gatsby-theme-mdx-deck-src-templates-deck-js-661b4b4564b03d8f828b.js.map"],"children":{},"childAssets":{}},"component---node-modules-gatsby-theme-mdx-deck-src-templates-decks-js":{"chunks":[3],"assets":["component---node-modules-gatsby-theme-mdx-deck-src-templates-decks-js-b4b8473d9a60847c7209.js","component---node-modules-gatsby-theme-mdx-deck-src-templates-decks-js-b4b8473d9a60847c7209.js.map"],"children":{},"childAssets":{}}},"assetsByChunkName":{"app":["webpack-runtime-6003cebeb46fe0c228e0.js","commons-17850e880a30a9454e8a.js","app-2bf9d62b7e38bcaf85d6.js"],"component---node-modules-gatsby-theme-mdx-deck-src-templates-deck-js":["component---node-modules-gatsby-theme-mdx-deck-src-templates-deck-js-661b4b4564b03d8f828b.js"],"component---node-modules-gatsby-theme-mdx-deck-src-templates-decks-js":["component---node-modules-gatsby-theme-mdx-deck-src-templates-decks-js-b4b8473d9a60847c7209.js"]}} -------------------------------------------------------------------------------- /public/page-data/unit9/page-data.json: -------------------------------------------------------------------------------- 1 | {"componentChunkName":"component---node-modules-gatsby-theme-mdx-deck-src-templates-deck-js","path":"/unit9","matchPath":"/unit9/*","result":{"data":{"deck":{"id":"f3751596-3e1e-5d9e-95cd-db19d228f500","body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsx mdx */\nvar themes = [Lidemy];\nvar _frontmatter = {};\n\nvar makeShortcode = function makeShortcode(name) {\n return function MDXDefaultShortcode(props) {\n console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n return mdx(\"div\", props);\n };\n};\n\nvar layoutProps = {\n themes: themes,\n _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n var components = _ref.components,\n props = _objectWithoutProperties(_ref, [\"components\"]);\n\n return mdx(MDXLayout, _extends({}, layoutProps, props, {\n components: components,\n mdxType: \"MDXLayout\"\n }), mdx(Fullscreen, {\n mdxType: \"Fullscreen\"\n }), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit9\\uFF1A\\u672A\\u4F86\\u7684\\u8DEF\\u9084\\u5F88\\u6F2B\\u9577\\uFF0C\\u4F60\\u9084\\u5DEE\\u5F97\\u9060\\u5462\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit9.1\\uFF1A\\u6DFA\\u8AC7\\u8CC7\\u6599\\u7D50\\u69CB\")), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u70BA\\u4EC0\\u9EBC\\u9700\\u8981\\u8CC7\\u6599\\u7D50\\u69CB\\uFF1F\"), mdx(\"hr\", null), mdx(\"h1\", null, \"JS \\u592A\\u65B9\\u4FBF\\u4E86\"), mdx(\"ol\", null, mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u842C\\u80FD Array\"), mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u842C\\u80FD Object\")), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u57FA\\u790E\\u8CC7\\u6599\\u7D50\\u69CB\"), mdx(\"ol\", null, mdx(\"li\", {\n parentName: \"ol\"\n }, \"Linked list\"), mdx(\"li\", {\n parentName: \"ol\"\n }, \"Queue\"), mdx(\"li\", {\n parentName: \"ol\"\n }, \"Stack\"), mdx(\"li\", {\n parentName: \"ol\"\n }, \"HashTable\"), mdx(\"li\", {\n parentName: \"ol\"\n }, \"Tree\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit9.2\\uFF1A\\u6DFA\\u8AC7\\u6F14\\u7B97\\u6CD5\")), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u4EC0\\u9EBC\\u662F\\u6F14\\u7B97\\u6CD5\\uFF1F\"), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u4E00\\u500B\\u6392\\u5E8F\\uFF0C\\u5404\\u81EA\\u8868\\u8FF0\"), mdx(\"ol\", null, mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u6CE1\\u6CAB\\u6392\\u5E8F\\u6CD5\"), mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u9078\\u64C7\\u6392\\u5E8F\\u6CD5\"), mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u63D2\\u5165\\u6392\\u5E8F\\u6CD5\"), mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u5FEB\\u901F\\u6392\\u5E8F\\u6CD5\"), mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u5408\\u4F75\\u6392\\u5E8F\\u6CD5\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit9.3\\uFF1A\\u5BE6\\u6230\\uFF1ALIOJ 1035\\uFF1A\\u7C21\\u6613\\u6392\\u5E8F\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit9.4\\uFF1A\\u5BE6\\u6230\\uFF1ALIOJ 1047\\uFF1A\\u641C\\u5C0B\\u6578\\u5B57\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit9.5\\uFF1A\\u5BE6\\u6230\\uFF1ALIOJ 1048\\uFF1A\\u6700\\u5927\\u9023\\u7E8C\\u548C\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit9.6\\uFF1A\\u7D50\\u8A9E\")), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u63A8\\u85A6\\u5B78\\u7FD2\\u8DEF\\u5F91\"), mdx(\"ol\", null, mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u6253\\u597D\\u57FA\\u790E\"), mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u4FEE\\u4E00\\u5802\\u6F14\\u7B97\\u6CD5\\u8AB2\"), mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u900F\\u904E leetcode \\u7DF4\\u7FD2\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit9.7\\uFF1AProject9 \\u4ECB\\u7D39\")), mdx(\"hr\", null), mdx(\"p\", null, mdx(\"a\", _extends({\n parentName: \"p\"\n }, {\n \"href\": \"https://forms.gle/GNFGJeGoe4onMcxd8\"\n }), \"\\u8AB2\\u7A0B\\u5FC3\\u5F97\")));\n}\n;\nMDXContent.isMDXComponent = true;"}},"pageContext":{"matchPath":"/unit9/*","id":"f3751596-3e1e-5d9e-95cd-db19d228f500","slug":"/ALG101-too-weak-to-leetcode/public/unit9","title":"先別急著寫 leetcode"}}} -------------------------------------------------------------------------------- /public/page-data/ALG101-too-weak-to-leetcode/public/unit9/print/page-data.json: -------------------------------------------------------------------------------- 1 | {"componentChunkName":"component---node-modules-gatsby-theme-mdx-deck-src-templates-deck-js","path":"/ALG101-too-weak-to-leetcode/public/unit9/print","result":{"data":{"deck":{"id":"f3751596-3e1e-5d9e-95cd-db19d228f500","body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsx mdx */\nvar themes = [Lidemy];\nvar _frontmatter = {};\n\nvar makeShortcode = function makeShortcode(name) {\n return function MDXDefaultShortcode(props) {\n console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n return mdx(\"div\", props);\n };\n};\n\nvar layoutProps = {\n themes: themes,\n _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n var components = _ref.components,\n props = _objectWithoutProperties(_ref, [\"components\"]);\n\n return mdx(MDXLayout, _extends({}, layoutProps, props, {\n components: components,\n mdxType: \"MDXLayout\"\n }), mdx(Fullscreen, {\n mdxType: \"Fullscreen\"\n }), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit9\\uFF1A\\u672A\\u4F86\\u7684\\u8DEF\\u9084\\u5F88\\u6F2B\\u9577\\uFF0C\\u4F60\\u9084\\u5DEE\\u5F97\\u9060\\u5462\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit9.1\\uFF1A\\u6DFA\\u8AC7\\u8CC7\\u6599\\u7D50\\u69CB\")), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u70BA\\u4EC0\\u9EBC\\u9700\\u8981\\u8CC7\\u6599\\u7D50\\u69CB\\uFF1F\"), mdx(\"hr\", null), mdx(\"h1\", null, \"JS \\u592A\\u65B9\\u4FBF\\u4E86\"), mdx(\"ol\", null, mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u842C\\u80FD Array\"), mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u842C\\u80FD Object\")), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u57FA\\u790E\\u8CC7\\u6599\\u7D50\\u69CB\"), mdx(\"ol\", null, mdx(\"li\", {\n parentName: \"ol\"\n }, \"Linked list\"), mdx(\"li\", {\n parentName: \"ol\"\n }, \"Queue\"), mdx(\"li\", {\n parentName: \"ol\"\n }, \"Stack\"), mdx(\"li\", {\n parentName: \"ol\"\n }, \"HashTable\"), mdx(\"li\", {\n parentName: \"ol\"\n }, \"Tree\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit9.2\\uFF1A\\u6DFA\\u8AC7\\u6F14\\u7B97\\u6CD5\")), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u4EC0\\u9EBC\\u662F\\u6F14\\u7B97\\u6CD5\\uFF1F\"), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u4E00\\u500B\\u6392\\u5E8F\\uFF0C\\u5404\\u81EA\\u8868\\u8FF0\"), mdx(\"ol\", null, mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u6CE1\\u6CAB\\u6392\\u5E8F\\u6CD5\"), mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u9078\\u64C7\\u6392\\u5E8F\\u6CD5\"), mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u63D2\\u5165\\u6392\\u5E8F\\u6CD5\"), mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u5FEB\\u901F\\u6392\\u5E8F\\u6CD5\"), mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u5408\\u4F75\\u6392\\u5E8F\\u6CD5\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit9.3\\uFF1A\\u5BE6\\u6230\\uFF1ALIOJ 1035\\uFF1A\\u7C21\\u6613\\u6392\\u5E8F\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit9.4\\uFF1A\\u5BE6\\u6230\\uFF1ALIOJ 1047\\uFF1A\\u641C\\u5C0B\\u6578\\u5B57\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit9.5\\uFF1A\\u5BE6\\u6230\\uFF1ALIOJ 1048\\uFF1A\\u6700\\u5927\\u9023\\u7E8C\\u548C\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit9.6\\uFF1A\\u7D50\\u8A9E\")), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u63A8\\u85A6\\u5B78\\u7FD2\\u8DEF\\u5F91\"), mdx(\"ol\", null, mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u6253\\u597D\\u57FA\\u790E\"), mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u4FEE\\u4E00\\u5802\\u6F14\\u7B97\\u6CD5\\u8AB2\"), mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u900F\\u904E leetcode \\u7DF4\\u7FD2\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit9.7\\uFF1AProject9 \\u4ECB\\u7D39\")), mdx(\"hr\", null), mdx(\"p\", null, mdx(\"a\", _extends({\n parentName: \"p\"\n }, {\n \"href\": \"https://forms.gle/GNFGJeGoe4onMcxd8\"\n }), \"\\u8AB2\\u7A0B\\u5FC3\\u5F97\")));\n}\n;\nMDXContent.isMDXComponent = true;"}},"pageContext":{"id":"f3751596-3e1e-5d9e-95cd-db19d228f500","slug":"/ALG101-too-weak-to-leetcode/public/unit9","title":"先別急著寫 leetcode"}}} -------------------------------------------------------------------------------- /public/page-data/unit7/page-data.json: -------------------------------------------------------------------------------- 1 | {"componentChunkName":"component---node-modules-gatsby-theme-mdx-deck-src-templates-deck-js","path":"/unit7","matchPath":"/unit7/*","result":{"data":{"deck":{"id":"a5f73508-f74b-56cb-8a5a-4b9f1fc6a31e","body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsx mdx */\nvar themes = [Lidemy];\nvar _frontmatter = {};\n\nvar makeShortcode = function makeShortcode(name) {\n return function MDXDefaultShortcode(props) {\n console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n return mdx(\"div\", props);\n };\n};\n\nvar layoutProps = {\n themes: themes,\n _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n var components = _ref.components,\n props = _objectWithoutProperties(_ref, [\"components\"]);\n\n return mdx(MDXLayout, _extends({}, layoutProps, props, {\n components: components,\n mdxType: \"MDXLayout\"\n }), mdx(Fullscreen, {\n mdxType: \"Fullscreen\"\n }), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit7\\uFF1A\\u570B\\u4E2D\\u984C\\u76EE\\u5927\\u6311\\u6230\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit7.1\\uFF1ANPSC \\u662F\\u4EC0\\u9EBC\\uFF1F\")), mdx(\"hr\", null), mdx(\"h1\", null, mdx(\"a\", _extends({\n parentName: \"h1\"\n }, {\n \"href\": \"https://contest.cc.ntu.edu.tw/npsc2019/\"\n }), \"NPSC\")), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u7279\\u8272\"), mdx(\"ol\", null, mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u6709\\u4E9B\\u984C\\u76EE\\u9069\\u5408\\u521D\\u5B78\\u8005\"), mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u984C\\u76EE\\u6709\\u8DA3\\u4E14\\u5B8C\\u6574\"), mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u6709\\u5B8C\\u6574\\u6E2C\\u8A66\\u8CC7\\u6599\"), mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u53EF\\u4EE5\\u5F9E\\u8A08\\u5206\\u677F\\u770B\\u51FA\\u96E3\\u5EA6\"), mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u6211\\u6709\\u53C3\\u52A0\\u904E\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit7.2\\uFF1A\\u5982\\u4F55\\u4F7F\\u7528 NPSC \\u7684\\u6E2C\\u8CC7\\uFF1F\")), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u5E78\\u597D\\u4F60\\u5DF2\\u7D93\\u719F\\u6089\\u6A94\\u6848 I/O \\u4E86\"), mdx(\"hr\", null), mdx(\"pre\", null, mdx(\"code\", _extends({\n parentName: \"pre\"\n }, {}), \"cat pa.in | node code.js | diff pa.out -\\n\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit7.3\\uFF1A\\u5BE6\\u6230\\uFF1ANPSC 2019 \\u570B\\u4E2D\\u7D44\\u521D\\u8CFD\")), mdx(\"hr\", null), mdx(\"h1\", null, mdx(\"a\", _extends({\n parentName: \"h1\"\n }, {\n \"href\": \"https://contest.cc.ntu.edu.tw/npsc2019/\"\n }), \"NPSC 2019\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit7.4\\uFF1A\\u5BE6\\u6230\\uFF1ANPSC 2008 \\u570B\\u4E2D\\u7D44\\u521D\\u8CFD\")), mdx(\"hr\", null), mdx(\"h1\", null, mdx(\"a\", _extends({\n parentName: \"h1\"\n }, {\n \"href\": \"https://contest.cc.ntu.edu.tw/npsc2008/\"\n }), \"NPSC 2008\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit7.5\\uFF1AProject7 \\u4ECB\\u7D39\")), mdx(\"hr\", null), mdx(\"h1\", null, \"Project7\"), mdx(\"p\", null, \"\\u8ACB\\u53C3\\u8003\", mdx(\"a\", _extends({\n parentName: \"p\"\n }, {\n \"href\": \"https://github.com/Lidemy/ALG101-too-weak-to-leetcode/tree/master/unit7\"\n }), \"\\u9019\\u908A\"), \" \"), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project7\\uFF1ALIOJ 1008\\uFF1A\\u5E7E\\u500B\\u6C34\\u6876\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project7\\uFF1ALIOJ 1009\\uFF1AYo\\uFF01\\u5012\\u8457\\u5538\\uFF01\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project7\\uFF1ALIOJ 1013\\uFF1A\\u642D\\u96FB\\u68AF\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project7\\uFF1ALIOJ 1014\\uFF1A\\u4E0D\\u4E5D\\u4EBA\\u4E16\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project7\\uFF1ALIOJ 1016\\uFF1A\\u4E0D\\u5408\\u7FA4\\u7684\\u4EBA\")));\n}\n;\nMDXContent.isMDXComponent = true;"}},"pageContext":{"matchPath":"/unit7/*","id":"a5f73508-f74b-56cb-8a5a-4b9f1fc6a31e","slug":"/ALG101-too-weak-to-leetcode/public/unit7","title":"先別急著寫 leetcode"}}} -------------------------------------------------------------------------------- /public/page-data/ALG101-too-weak-to-leetcode/public/unit7/print/page-data.json: -------------------------------------------------------------------------------- 1 | {"componentChunkName":"component---node-modules-gatsby-theme-mdx-deck-src-templates-deck-js","path":"/ALG101-too-weak-to-leetcode/public/unit7/print","result":{"data":{"deck":{"id":"a5f73508-f74b-56cb-8a5a-4b9f1fc6a31e","body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsx mdx */\nvar themes = [Lidemy];\nvar _frontmatter = {};\n\nvar makeShortcode = function makeShortcode(name) {\n return function MDXDefaultShortcode(props) {\n console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n return mdx(\"div\", props);\n };\n};\n\nvar layoutProps = {\n themes: themes,\n _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n var components = _ref.components,\n props = _objectWithoutProperties(_ref, [\"components\"]);\n\n return mdx(MDXLayout, _extends({}, layoutProps, props, {\n components: components,\n mdxType: \"MDXLayout\"\n }), mdx(Fullscreen, {\n mdxType: \"Fullscreen\"\n }), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit7\\uFF1A\\u570B\\u4E2D\\u984C\\u76EE\\u5927\\u6311\\u6230\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit7.1\\uFF1ANPSC \\u662F\\u4EC0\\u9EBC\\uFF1F\")), mdx(\"hr\", null), mdx(\"h1\", null, mdx(\"a\", _extends({\n parentName: \"h1\"\n }, {\n \"href\": \"https://contest.cc.ntu.edu.tw/npsc2019/\"\n }), \"NPSC\")), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u7279\\u8272\"), mdx(\"ol\", null, mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u6709\\u4E9B\\u984C\\u76EE\\u9069\\u5408\\u521D\\u5B78\\u8005\"), mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u984C\\u76EE\\u6709\\u8DA3\\u4E14\\u5B8C\\u6574\"), mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u6709\\u5B8C\\u6574\\u6E2C\\u8A66\\u8CC7\\u6599\"), mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u53EF\\u4EE5\\u5F9E\\u8A08\\u5206\\u677F\\u770B\\u51FA\\u96E3\\u5EA6\"), mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u6211\\u6709\\u53C3\\u52A0\\u904E\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit7.2\\uFF1A\\u5982\\u4F55\\u4F7F\\u7528 NPSC \\u7684\\u6E2C\\u8CC7\\uFF1F\")), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u5E78\\u597D\\u4F60\\u5DF2\\u7D93\\u719F\\u6089\\u6A94\\u6848 I/O \\u4E86\"), mdx(\"hr\", null), mdx(\"pre\", null, mdx(\"code\", _extends({\n parentName: \"pre\"\n }, {}), \"cat pa.in | node code.js | diff pa.out -\\n\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit7.3\\uFF1A\\u5BE6\\u6230\\uFF1ANPSC 2019 \\u570B\\u4E2D\\u7D44\\u521D\\u8CFD\")), mdx(\"hr\", null), mdx(\"h1\", null, mdx(\"a\", _extends({\n parentName: \"h1\"\n }, {\n \"href\": \"https://contest.cc.ntu.edu.tw/npsc2019/\"\n }), \"NPSC 2019\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit7.4\\uFF1A\\u5BE6\\u6230\\uFF1ANPSC 2008 \\u570B\\u4E2D\\u7D44\\u521D\\u8CFD\")), mdx(\"hr\", null), mdx(\"h1\", null, mdx(\"a\", _extends({\n parentName: \"h1\"\n }, {\n \"href\": \"https://contest.cc.ntu.edu.tw/npsc2008/\"\n }), \"NPSC 2008\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit7.5\\uFF1AProject7 \\u4ECB\\u7D39\")), mdx(\"hr\", null), mdx(\"h1\", null, \"Project7\"), mdx(\"p\", null, \"\\u8ACB\\u53C3\\u8003\", mdx(\"a\", _extends({\n parentName: \"p\"\n }, {\n \"href\": \"https://github.com/Lidemy/ALG101-too-weak-to-leetcode/tree/master/unit7\"\n }), \"\\u9019\\u908A\"), \" \"), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project7\\uFF1ALIOJ 1008\\uFF1A\\u5E7E\\u500B\\u6C34\\u6876\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project7\\uFF1ALIOJ 1009\\uFF1AYo\\uFF01\\u5012\\u8457\\u5538\\uFF01\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project7\\uFF1ALIOJ 1013\\uFF1A\\u642D\\u96FB\\u68AF\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project7\\uFF1ALIOJ 1014\\uFF1A\\u4E0D\\u4E5D\\u4EBA\\u4E16\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project7\\uFF1ALIOJ 1016\\uFF1A\\u4E0D\\u5408\\u7FA4\\u7684\\u4EBA\")));\n}\n;\nMDXContent.isMDXComponent = true;"}},"pageContext":{"id":"a5f73508-f74b-56cb-8a5a-4b9f1fc6a31e","slug":"/ALG101-too-weak-to-leetcode/public/unit7","title":"先別急著寫 leetcode"}}} -------------------------------------------------------------------------------- /public/page-data/unit8/page-data.json: -------------------------------------------------------------------------------- 1 | {"componentChunkName":"component---node-modules-gatsby-theme-mdx-deck-src-templates-deck-js","path":"/unit8","matchPath":"/unit8/*","result":{"data":{"deck":{"id":"ea23ec63-deef-572e-acdd-30d91b3e003a","body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsx mdx */\nvar themes = [Lidemy];\nvar _frontmatter = {};\n\nvar makeShortcode = function makeShortcode(name) {\n return function MDXDefaultShortcode(props) {\n console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n return mdx(\"div\", props);\n };\n};\n\nvar layoutProps = {\n themes: themes,\n _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n var components = _ref.components,\n props = _objectWithoutProperties(_ref, [\"components\"]);\n\n return mdx(MDXLayout, _extends({}, layoutProps, props, {\n components: components,\n mdxType: \"MDXLayout\"\n }), mdx(Fullscreen, {\n mdxType: \"Fullscreen\"\n }), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit8\\uFF1A\\u521D\\u5B78\\u8005\\u53EA\\u7BA1\\u62FF\\u5206\\uFF0C\\u8AB0\\u7BA1\\u4F60\\u4EC0\\u9EBC\\u6548\\u7387\")), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u521D\\u5B78\\u8005\"), mdx(\"p\", null, \"\\u5148\\u6C42\\u6709\\uFF0C\\u518D\\u6C42\\u597D\\uFF08\\u771F\\u7684\\u8981\\u53BB\\u6C42\\u5566\\uFF09\"), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit8.1\\uFF1A\\u6DFA\\u8AC7\\u6642\\u9593\\u8207\\u7A7A\\u9593\\u8907\\u96DC\\u5EA6\")), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u8A72\\u600E\\u9EBC\\u8868\\u793A\\u4E00\\u500B\\u6F14\\u7B97\\u6CD5\\u7684\\u6548\\u7387\\uFF1F\"), mdx(\"p\", null, \"\\u4F8B\\u5982\\u8AAA...\\u57F7\\u884C\\u6240\\u9700\\u7684\\u6642\\u9593\\uFF1F\"), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u6F14\\u7B97\\u6CD5\\u6548\\u7387\"), mdx(\"p\", null, \"\\u57F7\\u884C\\u6240\\u9700\\u6B65\\u9A5F\\u8207\\u8CC7\\u6599\\u91CF n \\u7684\\u95DC\\u806F\"), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u6642\\u9593\\u8907\\u96DC\\u5EA6\"), mdx(\"p\", null, \"Big O \\u7B26\\u865F\\uFF1AO(n)\"), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u7A7A\\u9593\\u8907\\u96DC\\u5EA6\"), mdx(\"p\", null, \"\\u57F7\\u884C\\u6240\\u9700\\u7A7A\\u9593\\u8207\\u8CC7\\u6599\\u91CF n \\u7684\\u95DC\\u806F\"), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u6642\\u9593 vs \\u7A7A\\u9593\"), mdx(\"p\", null, \"\\u901A\\u5E38\\u4E0D\\u53EF\\u5169\\u8005\\u517C\\u5F97 \"), mdx(\"ol\", null, mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u6642\\u9593\\u63DB\\u7A7A\\u9593 \"), mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u7A7A\\u9593\\u63DB\\u6642\\u9593\")), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u6642\\u9593\\u63DB\\u7A7A\\u9593\"), mdx(\"p\", null, \"\\u589E\\u52A0\\u57F7\\u884C\\u6642\\u9593\\u4F86\\u7BC0\\u7701\\u7A7A\\u9593\", mdx(\"br\", {\n parentName: \"p\"\n }), \"\\n\", \"\\u7BC4\\u4F8B\\uFF1A\\u6392\\u968A\"), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u7A7A\\u9593\\u63DB\\u6642\\u9593\"), mdx(\"p\", null, \"\\u589E\\u52A0\\u7A7A\\u9593\\u6D88\\u8017\\u4F86\\u7BC0\\u7701\\u6642\\u9593\", mdx(\"br\", {\n parentName: \"p\"\n }), \"\\n\", \"\\u7BC4\\u4F8B\\uFF1A\\u66F8\\u672C\\u7D22\\u5F15\"), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit8.2\\uFF1A\\u96FB\\u8166\\u6BD4\\u4F60\\u60F3\\u5F97\\u53B2\\u5BB3\")), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u5F9E 1 \\u52A0\\u5230 1 \\u5104\\u8981\\u591A\\u4E45\\uFF1F\"), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit8.3\\uFF1A\\u5BE6\\u6230\\uFF1ALIOJ 1035\\uFF1A\\u7C21\\u6613\\u6392\\u5E8F\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit8.4\\uFF1A\\u5BE6\\u6230\\uFF1ALIOJ 1047\\uFF1A\\u641C\\u5C0B\\u6578\\u5B57\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit8.5\\uFF1A\\u5BE6\\u6230\\uFF1ALIOJ 1048\\uFF1A\\u6700\\u5927\\u9023\\u7E8C\\u548C\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit8.6\\uFF1AProject8 \\u4ECB\\u7D39\")), mdx(\"hr\", null), mdx(\"h1\", null, \"Project8\"), mdx(\"p\", null, \"\\u8ACB\\u53C3\\u8003\", mdx(\"a\", _extends({\n parentName: \"p\"\n }, {\n \"href\": \"https://github.com/Lidemy/ALG101-too-weak-to-leetcode/tree/master/unit8\"\n }), \"\\u9019\\u908A\"), \" \"), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project8\\uFF1ALIOJ 1049\\uFF1A\\u9663\\u5217\\u6700\\u77ED\\u8DDD\\u96E2\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project8\\uFF1ALIOJ 1050\\uFF1Atwo sum\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project8\\uFF1ALIOJ 1051\\uFF1A\\u9006\\u5E8F\\u6578\\u5C0D\")));\n}\n;\nMDXContent.isMDXComponent = true;"}},"pageContext":{"matchPath":"/unit8/*","id":"ea23ec63-deef-572e-acdd-30d91b3e003a","slug":"/ALG101-too-weak-to-leetcode/public/unit8","title":"先別急著寫 leetcode"}}} -------------------------------------------------------------------------------- /public/page-data/ALG101-too-weak-to-leetcode/public/unit8/print/page-data.json: -------------------------------------------------------------------------------- 1 | {"componentChunkName":"component---node-modules-gatsby-theme-mdx-deck-src-templates-deck-js","path":"/ALG101-too-weak-to-leetcode/public/unit8/print","result":{"data":{"deck":{"id":"ea23ec63-deef-572e-acdd-30d91b3e003a","body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsx mdx */\nvar themes = [Lidemy];\nvar _frontmatter = {};\n\nvar makeShortcode = function makeShortcode(name) {\n return function MDXDefaultShortcode(props) {\n console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n return mdx(\"div\", props);\n };\n};\n\nvar layoutProps = {\n themes: themes,\n _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n var components = _ref.components,\n props = _objectWithoutProperties(_ref, [\"components\"]);\n\n return mdx(MDXLayout, _extends({}, layoutProps, props, {\n components: components,\n mdxType: \"MDXLayout\"\n }), mdx(Fullscreen, {\n mdxType: \"Fullscreen\"\n }), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit8\\uFF1A\\u521D\\u5B78\\u8005\\u53EA\\u7BA1\\u62FF\\u5206\\uFF0C\\u8AB0\\u7BA1\\u4F60\\u4EC0\\u9EBC\\u6548\\u7387\")), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u521D\\u5B78\\u8005\"), mdx(\"p\", null, \"\\u5148\\u6C42\\u6709\\uFF0C\\u518D\\u6C42\\u597D\\uFF08\\u771F\\u7684\\u8981\\u53BB\\u6C42\\u5566\\uFF09\"), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit8.1\\uFF1A\\u6DFA\\u8AC7\\u6642\\u9593\\u8207\\u7A7A\\u9593\\u8907\\u96DC\\u5EA6\")), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u8A72\\u600E\\u9EBC\\u8868\\u793A\\u4E00\\u500B\\u6F14\\u7B97\\u6CD5\\u7684\\u6548\\u7387\\uFF1F\"), mdx(\"p\", null, \"\\u4F8B\\u5982\\u8AAA...\\u57F7\\u884C\\u6240\\u9700\\u7684\\u6642\\u9593\\uFF1F\"), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u6F14\\u7B97\\u6CD5\\u6548\\u7387\"), mdx(\"p\", null, \"\\u57F7\\u884C\\u6240\\u9700\\u6B65\\u9A5F\\u8207\\u8CC7\\u6599\\u91CF n \\u7684\\u95DC\\u806F\"), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u6642\\u9593\\u8907\\u96DC\\u5EA6\"), mdx(\"p\", null, \"Big O \\u7B26\\u865F\\uFF1AO(n)\"), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u7A7A\\u9593\\u8907\\u96DC\\u5EA6\"), mdx(\"p\", null, \"\\u57F7\\u884C\\u6240\\u9700\\u7A7A\\u9593\\u8207\\u8CC7\\u6599\\u91CF n \\u7684\\u95DC\\u806F\"), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u6642\\u9593 vs \\u7A7A\\u9593\"), mdx(\"p\", null, \"\\u901A\\u5E38\\u4E0D\\u53EF\\u5169\\u8005\\u517C\\u5F97 \"), mdx(\"ol\", null, mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u6642\\u9593\\u63DB\\u7A7A\\u9593 \"), mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u7A7A\\u9593\\u63DB\\u6642\\u9593\")), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u6642\\u9593\\u63DB\\u7A7A\\u9593\"), mdx(\"p\", null, \"\\u589E\\u52A0\\u57F7\\u884C\\u6642\\u9593\\u4F86\\u7BC0\\u7701\\u7A7A\\u9593\", mdx(\"br\", {\n parentName: \"p\"\n }), \"\\n\", \"\\u7BC4\\u4F8B\\uFF1A\\u6392\\u968A\"), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u7A7A\\u9593\\u63DB\\u6642\\u9593\"), mdx(\"p\", null, \"\\u589E\\u52A0\\u7A7A\\u9593\\u6D88\\u8017\\u4F86\\u7BC0\\u7701\\u6642\\u9593\", mdx(\"br\", {\n parentName: \"p\"\n }), \"\\n\", \"\\u7BC4\\u4F8B\\uFF1A\\u66F8\\u672C\\u7D22\\u5F15\"), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit8.2\\uFF1A\\u96FB\\u8166\\u6BD4\\u4F60\\u60F3\\u5F97\\u53B2\\u5BB3\")), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u5F9E 1 \\u52A0\\u5230 1 \\u5104\\u8981\\u591A\\u4E45\\uFF1F\"), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit8.3\\uFF1A\\u5BE6\\u6230\\uFF1ALIOJ 1035\\uFF1A\\u7C21\\u6613\\u6392\\u5E8F\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit8.4\\uFF1A\\u5BE6\\u6230\\uFF1ALIOJ 1047\\uFF1A\\u641C\\u5C0B\\u6578\\u5B57\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit8.5\\uFF1A\\u5BE6\\u6230\\uFF1ALIOJ 1048\\uFF1A\\u6700\\u5927\\u9023\\u7E8C\\u548C\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit8.6\\uFF1AProject8 \\u4ECB\\u7D39\")), mdx(\"hr\", null), mdx(\"h1\", null, \"Project8\"), mdx(\"p\", null, \"\\u8ACB\\u53C3\\u8003\", mdx(\"a\", _extends({\n parentName: \"p\"\n }, {\n \"href\": \"https://github.com/Lidemy/ALG101-too-weak-to-leetcode/tree/master/unit8\"\n }), \"\\u9019\\u908A\"), \" \"), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project8\\uFF1ALIOJ 1049\\uFF1A\\u9663\\u5217\\u6700\\u77ED\\u8DDD\\u96E2\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project8\\uFF1ALIOJ 1050\\uFF1Atwo sum\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project8\\uFF1ALIOJ 1051\\uFF1A\\u9006\\u5E8F\\u6578\\u5C0D\")));\n}\n;\nMDXContent.isMDXComponent = true;"}},"pageContext":{"id":"ea23ec63-deef-572e-acdd-30d91b3e003a","slug":"/ALG101-too-weak-to-leetcode/public/unit8","title":"先別急著寫 leetcode"}}} -------------------------------------------------------------------------------- /public/page-data/unit6/page-data.json: -------------------------------------------------------------------------------- 1 | {"componentChunkName":"component---node-modules-gatsby-theme-mdx-deck-src-templates-deck-js","path":"/unit6","matchPath":"/unit6/*","result":{"data":{"deck":{"id":"25e2c2c5-43fa-5355-ac8c-c3e8d51e4b9f","body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsx mdx */\nvar themes = [Lidemy];\nvar _frontmatter = {};\n\nvar makeShortcode = function makeShortcode(name) {\n return function MDXDefaultShortcode(props) {\n console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n return mdx(\"div\", props);\n };\n};\n\nvar layoutProps = {\n themes: themes,\n _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n var components = _ref.components,\n props = _objectWithoutProperties(_ref, [\"components\"]);\n\n return mdx(MDXLayout, _extends({}, layoutProps, props, {\n components: components,\n mdxType: \"MDXLayout\"\n }), mdx(Fullscreen, {\n mdxType: \"Fullscreen\"\n }), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit6\\uFF1A\\u5167\\u5EFA\\u51FD\\u5F0F\\u505A\\u505A\\u770B\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit6.1\\uFF1A\\u7DF4\\u7FD2\\u5BE6\\u4F5C\\u5167\\u5EFA\\u51FD\\u5F0F\")), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u7406\\u89E3\\u5167\\u5EFA\\u51FD\\u5F0F\"), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit6.2\\uFF1A\\u5BE6\\u6230\\uFF1AArray.map\")), mdx(\"hr\", null), mdx(CodeSurfer, {\n mdxType: \"CodeSurfer\"\n }, mdx(\"pre\", null, mdx(\"code\", _extends({\n parentName: \"pre\"\n }, {\n \"className\": \"language-js\"\n }), \"function double(n) {\\n return n*2\\n}\\n\\nlet arr = [1, 2, 3]\\nlet newArr = arr.map(double)\\nconsole.log(newArr) // [2, 4, 6]\\n\")), mdx(\"pre\", null, mdx(\"code\", _extends({\n parentName: \"pre\"\n }, {\n \"6\": true,\n \"className\": \"language-diff\",\n \"metastring\": \"6 subtitle=\\\"傳進一個函式\\\"\",\n \"subtitle\": \"\\\"傳進一個函式\\\"\"\n }), \"\")), mdx(\"pre\", null, mdx(\"code\", _extends({\n parentName: \"pre\"\n }, {\n \"7\": true,\n \"className\": \"language-diff\",\n \"metastring\": \"7 subtitle=\\\"產生新陣列(不改變原來的)\\\"\",\n \"subtitle\": \"\\\"產生新陣列(不改變原來的)\\\"\"\n }), \"\"))), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit6.3\\uFF1A\\u5BE6\\u6230\\uFF1AString.repeat\")), mdx(\"hr\", null), mdx(\"pre\", null, mdx(\"code\", _extends({\n parentName: \"pre\"\n }, {\n \"className\": \"language-js\"\n }), \"'abc'.repeat(3) // abcabcabc\\n\")), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u91CD\\u9EDE\"), mdx(\"p\", null, \"\\u5167\\u5EFA\\u51FD\\u5F0F\\u300C\\u5E7E\\u4E4E\\u300D\\u90FD\\u4E0D\\u6703\\u6539\\u8B8A\\u539F\\u672C\\u7684\\u503C\"), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit6.4\\uFF1A\\u5BE6\\u6230\\uFF1AArray.lastIndexOf\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit6.5\\uFF1AProject6 \\u4ECB\\u7D39\")), mdx(\"hr\", null), mdx(\"h1\", null, \"Project6\"), mdx(\"p\", null, \"\\u8ACB\\u53C3\\u8003\", mdx(\"a\", _extends({\n parentName: \"p\"\n }, {\n \"href\": \"https://github.com/Lidemy/ALG101-too-weak-to-leetcode/tree/master/unit6\"\n }), \"\\u9019\\u908A\"), mdx(\"br\", {\n parentName: \"p\"\n }), \"\\n\", \"\\u652F\\u63F4\\u300C\\u6700\\u57FA\\u672C\\u300D\\u7684\\u53C3\\u6578\\u5373\\u53EF\"), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project6\\uFF1ALIOJ 1036\\uFF1AArray reverse\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project6\\uFF1ALIOJ 1037\\uFF1AArray filter\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project6\\uFF1ALIOJ 1038\\uFF1AArray indexOf\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project6\\uFF1ALIOJ 1039\\uFF1AArray fill\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project6\\uFF1ALIOJ 1040\\uFF1AArray join\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project6\\uFF1ALIOJ 1041\\uFF1AString trim\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project6\\uFF1ALIOJ 1042\\uFF1AString toLowerCase\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project6\\uFF1ALIOJ 1043\\uFF1AString endsWith\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project6\\uFF1ALIOJ 1044\\uFF1AString padEnd\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project6\\uFF1ALIOJ 1045\\uFF1AString slice\")));\n}\n;\nMDXContent.isMDXComponent = true;"}},"pageContext":{"matchPath":"/unit6/*","id":"25e2c2c5-43fa-5355-ac8c-c3e8d51e4b9f","slug":"/ALG101-too-weak-to-leetcode/public/unit6","title":"先別急著寫 leetcode"}}} -------------------------------------------------------------------------------- /public/page-data/ALG101-too-weak-to-leetcode/public/unit6/print/page-data.json: -------------------------------------------------------------------------------- 1 | {"componentChunkName":"component---node-modules-gatsby-theme-mdx-deck-src-templates-deck-js","path":"/ALG101-too-weak-to-leetcode/public/unit6/print","result":{"data":{"deck":{"id":"25e2c2c5-43fa-5355-ac8c-c3e8d51e4b9f","body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsx mdx */\nvar themes = [Lidemy];\nvar _frontmatter = {};\n\nvar makeShortcode = function makeShortcode(name) {\n return function MDXDefaultShortcode(props) {\n console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n return mdx(\"div\", props);\n };\n};\n\nvar layoutProps = {\n themes: themes,\n _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n var components = _ref.components,\n props = _objectWithoutProperties(_ref, [\"components\"]);\n\n return mdx(MDXLayout, _extends({}, layoutProps, props, {\n components: components,\n mdxType: \"MDXLayout\"\n }), mdx(Fullscreen, {\n mdxType: \"Fullscreen\"\n }), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit6\\uFF1A\\u5167\\u5EFA\\u51FD\\u5F0F\\u505A\\u505A\\u770B\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit6.1\\uFF1A\\u7DF4\\u7FD2\\u5BE6\\u4F5C\\u5167\\u5EFA\\u51FD\\u5F0F\")), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u7406\\u89E3\\u5167\\u5EFA\\u51FD\\u5F0F\"), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit6.2\\uFF1A\\u5BE6\\u6230\\uFF1AArray.map\")), mdx(\"hr\", null), mdx(CodeSurfer, {\n mdxType: \"CodeSurfer\"\n }, mdx(\"pre\", null, mdx(\"code\", _extends({\n parentName: \"pre\"\n }, {\n \"className\": \"language-js\"\n }), \"function double(n) {\\n return n*2\\n}\\n\\nlet arr = [1, 2, 3]\\nlet newArr = arr.map(double)\\nconsole.log(newArr) // [2, 4, 6]\\n\")), mdx(\"pre\", null, mdx(\"code\", _extends({\n parentName: \"pre\"\n }, {\n \"6\": true,\n \"className\": \"language-diff\",\n \"metastring\": \"6 subtitle=\\\"傳進一個函式\\\"\",\n \"subtitle\": \"\\\"傳進一個函式\\\"\"\n }), \"\")), mdx(\"pre\", null, mdx(\"code\", _extends({\n parentName: \"pre\"\n }, {\n \"7\": true,\n \"className\": \"language-diff\",\n \"metastring\": \"7 subtitle=\\\"產生新陣列(不改變原來的)\\\"\",\n \"subtitle\": \"\\\"產生新陣列(不改變原來的)\\\"\"\n }), \"\"))), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit6.3\\uFF1A\\u5BE6\\u6230\\uFF1AString.repeat\")), mdx(\"hr\", null), mdx(\"pre\", null, mdx(\"code\", _extends({\n parentName: \"pre\"\n }, {\n \"className\": \"language-js\"\n }), \"'abc'.repeat(3) // abcabcabc\\n\")), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u91CD\\u9EDE\"), mdx(\"p\", null, \"\\u5167\\u5EFA\\u51FD\\u5F0F\\u300C\\u5E7E\\u4E4E\\u300D\\u90FD\\u4E0D\\u6703\\u6539\\u8B8A\\u539F\\u672C\\u7684\\u503C\"), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit6.4\\uFF1A\\u5BE6\\u6230\\uFF1AArray.lastIndexOf\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit6.5\\uFF1AProject6 \\u4ECB\\u7D39\")), mdx(\"hr\", null), mdx(\"h1\", null, \"Project6\"), mdx(\"p\", null, \"\\u8ACB\\u53C3\\u8003\", mdx(\"a\", _extends({\n parentName: \"p\"\n }, {\n \"href\": \"https://github.com/Lidemy/ALG101-too-weak-to-leetcode/tree/master/unit6\"\n }), \"\\u9019\\u908A\"), mdx(\"br\", {\n parentName: \"p\"\n }), \"\\n\", \"\\u652F\\u63F4\\u300C\\u6700\\u57FA\\u672C\\u300D\\u7684\\u53C3\\u6578\\u5373\\u53EF\"), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project6\\uFF1ALIOJ 1036\\uFF1AArray reverse\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project6\\uFF1ALIOJ 1037\\uFF1AArray filter\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project6\\uFF1ALIOJ 1038\\uFF1AArray indexOf\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project6\\uFF1ALIOJ 1039\\uFF1AArray fill\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project6\\uFF1ALIOJ 1040\\uFF1AArray join\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project6\\uFF1ALIOJ 1041\\uFF1AString trim\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project6\\uFF1ALIOJ 1042\\uFF1AString toLowerCase\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project6\\uFF1ALIOJ 1043\\uFF1AString endsWith\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project6\\uFF1ALIOJ 1044\\uFF1AString padEnd\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project6\\uFF1ALIOJ 1045\\uFF1AString slice\")));\n}\n;\nMDXContent.isMDXComponent = true;"}},"pageContext":{"id":"25e2c2c5-43fa-5355-ac8c-c3e8d51e4b9f","slug":"/ALG101-too-weak-to-leetcode/public/unit6","title":"先別急著寫 leetcode"}}} -------------------------------------------------------------------------------- /public/page-data/unit0/page-data.json: -------------------------------------------------------------------------------- 1 | {"componentChunkName":"component---node-modules-gatsby-theme-mdx-deck-src-templates-deck-js","path":"/unit0","matchPath":"/unit0/*","result":{"data":{"deck":{"id":"a3d334a0-f4b5-5693-867c-811256db92f7","body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsx mdx */\nvar themes = [Lidemy];\nvar _frontmatter = {};\n\nvar makeShortcode = function makeShortcode(name) {\n return function MDXDefaultShortcode(props) {\n console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n return mdx(\"div\", props);\n };\n};\n\nvar layoutProps = {\n themes: themes,\n _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n var components = _ref.components,\n props = _objectWithoutProperties(_ref, [\"components\"]);\n\n return mdx(MDXLayout, _extends({}, layoutProps, props, {\n components: components,\n mdxType: \"MDXLayout\"\n }), mdx(Fullscreen, {\n mdxType: \"Fullscreen\"\n }), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit0\\uFF1A\\u8AB2\\u7A0B\\u7C21\\u4ECB\")), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u70BA\\u4EC0\\u9EBC\\u60F3\\u958B\\u9019\\u5802\\u8AB2\\uFF1F\"), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u8AB2\\u7A0B\\u5167\\u5BB9\"), mdx(\"ol\", null, mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u719F\\u7DF4\\u7A0B\\u5F0F\\u57FA\\u790E\\u8A9E\\u6CD5\"), mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u719F\\u7DF4\\u7A0B\\u5F0F\\u601D\\u7DAD\")), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u57F9\\u990A\\u89C0\\u5FF5\"), mdx(\"ul\", null, mdx(\"li\", {\n parentName: \"ul\"\n }, \"Unit1\\uFF1A\\u8981\\u5B78\\u597D\\u7A0B\\u5F0F\\uFF0C\\u5F9E\\u4E0D\\u8981\\u5BEB\\u7A0B\\u5F0F\\u958B\\u59CB\"), mdx(\"li\", {\n parentName: \"ul\"\n }, \"Unit2\\uFF1A\\u5BEB\\u7A0B\\u5F0F\\u4E4B\\u524D\\uFF0C\\u5148\\u5B78\\u6703\\u300C\\u770B\\u7A0B\\u5F0F\\u300D\"), mdx(\"li\", {\n parentName: \"ul\"\n }, \"Unit3\\uFF1A\\u5BEB\\u7A0B\\u5F0F\\u524D\\u7684\\u6700\\u5F8C\\u4E00\\u6B65\\uFF1A\\u770B\\u61C2\\u984C\\u76EE\")), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u57FA\\u790E\\u7DF4\\u7FD2\"), mdx(\"ul\", null, mdx(\"li\", {\n parentName: \"ul\"\n }, \"Unit4\\uFF1A\\u4E3B\\u89D2\\u7E3D\\u662F\\u6700\\u5F8C\\u624D\\u767B\\u5834\\uFF1A\\u5BEB\\u7A0B\\u5F0F\\u56C9\"), mdx(\"li\", {\n parentName: \"ul\"\n }, \"Unit5\\uFF1A\\u7D93\\u5178\\u984C\\u76EE\\u89E3\\u89E3\\u770B\"), mdx(\"li\", {\n parentName: \"ul\"\n }, \"Unit6\\uFF1A\\u5167\\u5EFA\\u51FD\\u5F0F\\u505A\\u505A\\u770B\"), mdx(\"li\", {\n parentName: \"ul\"\n }, \"Unit7\\uFF1A\\u570B\\u4E2D\\u984C\\u76EE\\u5927\\u6311\\u6230\")), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u5C55\\u671B\\u672A\\u4F86\"), mdx(\"ul\", null, mdx(\"li\", {\n parentName: \"ul\"\n }, \"Unit8\\uFF1A\\u521D\\u5B78\\u8005\\u53EA\\u7BA1\\u62FF\\u5206\\uFF0C\\u8AB0\\u7BA1\\u4F60\\u4EC0\\u9EBC\\u6548\\u7387\"), mdx(\"li\", {\n parentName: \"ul\"\n }, \"Unit9\\uFF1A\\u672A\\u4F86\\u7684\\u8DEF\\u9084\\u5F88\\u6F2B\\u9577\\uFF0C\\u4F60\\u9084\\u5DEE\\u5F97\\u9060\\u5462\")), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u8AB2\\u7A0B\\u76EE\\u6A19\"), mdx(\"p\", null, \"\\u89BA\\u5F97 \", mdx(\"a\", _extends({\n parentName: \"p\"\n }, {\n \"href\": \"https://oj.lidemy.com/problem\"\n }), \"LidemyOJ\"), \" \\u4E0A\\u7684\\u984C\\u76EE\\u90FD\\u5F88\\u7C21\\u55AE\"), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit0.0\\uFF1A\\u4EC0\\u9EBC\\u4EBA\\u9069\\u5408\\u9019\\u5802\\u8AB2\\uFF1F\")), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u8AB0\\u9069\\u5408\\u9019\\u5802\\u8AB2\\uFF1F\"), mdx(\"ol\", null, mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u5DF2\\u7D93\\u6709\\u7A0B\\u5F0F\\u57FA\\u790E\"), mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u5BEB leetcode \\u78B0\\u5230\\u56B4\\u91CD\\u969C\\u7919\"), mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u5BEB\\u4E0D\\u51FA\\u4E5D\\u4E5D\\u4E58\\u6CD5\\u8868\")), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u8AB0\\u4E0D\\u9069\\u5408\\u9019\\u5802\\u8AB2\\uFF1F\"), mdx(\"ol\", null, mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u5BEB leetcode \\u6C92\\u4EC0\\u9EBC\\u592A\\u5927\\u7684\\u554F\\u984C\"), mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u89BA\\u5F97\\u300C\\u7A0B\\u5EA6\\u6E2C\\u9A57\\u300D\\u7684\\u6771\\u897F\\u90FD\\u5F88\\u7C21\\u55AE\")), mdx(\"hr\", null), mdx(\"h1\", null, mdx(\"a\", _extends({\n parentName: \"h1\"\n }, {\n \"href\": \"https://oj.lidemy.com/problem?tag=%E7%A8%8B%E5%BA%A6%E6%B8%AC%E9%A9%97&page=1\"\n }), \"\\u7A0B\\u5EA6\\u6E2C\\u9A57\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit0.1\\uFF1A\\u70BA\\u4EC0\\u9EBC\\u8981\\u4E0A\\u9019\\u5802\\u8AB2\\uFF1F\")), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u9084\\u6C92\\u5B78\\u6703\\u8D70\\uFF0C\\u4F60\\u8981\\u600E\\u9EBC\\u8DD1\\uFF1F\"), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit0.2\\uFF1A\\u8AB2\\u7A0B\\u9032\\u884C\\u65B9\\u5F0F\")), mdx(\"hr\", null), mdx(\"h1\", null, \"Step 1. \\u770B\\u8AB2\\u7A0B\\u5F71\\u7247\"), mdx(\"hr\", null), mdx(\"h1\", null, \"Step 2. \\u5BE6\\u6230\\u7DF4\\u7FD2\"), mdx(\"hr\", null), mdx(\"h1\", null, \"Step 3. \\u4F5C\\u696D\\u7DF4\\u7FD2\"), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit0.3\\uFF1AProject0 \\u4ECB\\u7D39\")), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u5B8C\\u6210\\u4EE5\\u4E0B\\u984C\\u76EE\"), mdx(\"ol\", null, mdx(\"li\", {\n parentName: \"ol\"\n }, mdx(\"a\", _extends({\n parentName: \"li\"\n }, {\n \"href\": \"https://oj.lidemy.com/problem/1001\"\n }), \"LIOJ1001\")), mdx(\"li\", {\n parentName: \"ol\"\n }, mdx(\"a\", _extends({\n parentName: \"li\"\n }, {\n \"href\": \"https://oj.lidemy.com/problem/1002\"\n }), \"LIOJ1002\"))), mdx(\"p\", null, mdx(\"a\", _extends({\n parentName: \"p\"\n }, {\n \"href\": \"https://www.youtube.com/watch?v=v7zv1ixaO3M\"\n }), \"LIOJ \\u64CD\\u4F5C\\u6559\\u5B78\\u5F71\\u7247\")));\n}\n;\nMDXContent.isMDXComponent = true;"}},"pageContext":{"matchPath":"/unit0/*","id":"a3d334a0-f4b5-5693-867c-811256db92f7","slug":"/ALG101-too-weak-to-leetcode/public/unit0","title":"先別急著寫 leetcode"}}} -------------------------------------------------------------------------------- /public/page-data/ALG101-too-weak-to-leetcode/public/unit0/print/page-data.json: -------------------------------------------------------------------------------- 1 | {"componentChunkName":"component---node-modules-gatsby-theme-mdx-deck-src-templates-deck-js","path":"/ALG101-too-weak-to-leetcode/public/unit0/print","result":{"data":{"deck":{"id":"a3d334a0-f4b5-5693-867c-811256db92f7","body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsx mdx */\nvar themes = [Lidemy];\nvar _frontmatter = {};\n\nvar makeShortcode = function makeShortcode(name) {\n return function MDXDefaultShortcode(props) {\n console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n return mdx(\"div\", props);\n };\n};\n\nvar layoutProps = {\n themes: themes,\n _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n var components = _ref.components,\n props = _objectWithoutProperties(_ref, [\"components\"]);\n\n return mdx(MDXLayout, _extends({}, layoutProps, props, {\n components: components,\n mdxType: \"MDXLayout\"\n }), mdx(Fullscreen, {\n mdxType: \"Fullscreen\"\n }), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit0\\uFF1A\\u8AB2\\u7A0B\\u7C21\\u4ECB\")), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u70BA\\u4EC0\\u9EBC\\u60F3\\u958B\\u9019\\u5802\\u8AB2\\uFF1F\"), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u8AB2\\u7A0B\\u5167\\u5BB9\"), mdx(\"ol\", null, mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u719F\\u7DF4\\u7A0B\\u5F0F\\u57FA\\u790E\\u8A9E\\u6CD5\"), mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u719F\\u7DF4\\u7A0B\\u5F0F\\u601D\\u7DAD\")), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u57F9\\u990A\\u89C0\\u5FF5\"), mdx(\"ul\", null, mdx(\"li\", {\n parentName: \"ul\"\n }, \"Unit1\\uFF1A\\u8981\\u5B78\\u597D\\u7A0B\\u5F0F\\uFF0C\\u5F9E\\u4E0D\\u8981\\u5BEB\\u7A0B\\u5F0F\\u958B\\u59CB\"), mdx(\"li\", {\n parentName: \"ul\"\n }, \"Unit2\\uFF1A\\u5BEB\\u7A0B\\u5F0F\\u4E4B\\u524D\\uFF0C\\u5148\\u5B78\\u6703\\u300C\\u770B\\u7A0B\\u5F0F\\u300D\"), mdx(\"li\", {\n parentName: \"ul\"\n }, \"Unit3\\uFF1A\\u5BEB\\u7A0B\\u5F0F\\u524D\\u7684\\u6700\\u5F8C\\u4E00\\u6B65\\uFF1A\\u770B\\u61C2\\u984C\\u76EE\")), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u57FA\\u790E\\u7DF4\\u7FD2\"), mdx(\"ul\", null, mdx(\"li\", {\n parentName: \"ul\"\n }, \"Unit4\\uFF1A\\u4E3B\\u89D2\\u7E3D\\u662F\\u6700\\u5F8C\\u624D\\u767B\\u5834\\uFF1A\\u5BEB\\u7A0B\\u5F0F\\u56C9\"), mdx(\"li\", {\n parentName: \"ul\"\n }, \"Unit5\\uFF1A\\u7D93\\u5178\\u984C\\u76EE\\u89E3\\u89E3\\u770B\"), mdx(\"li\", {\n parentName: \"ul\"\n }, \"Unit6\\uFF1A\\u5167\\u5EFA\\u51FD\\u5F0F\\u505A\\u505A\\u770B\"), mdx(\"li\", {\n parentName: \"ul\"\n }, \"Unit7\\uFF1A\\u570B\\u4E2D\\u984C\\u76EE\\u5927\\u6311\\u6230\")), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u5C55\\u671B\\u672A\\u4F86\"), mdx(\"ul\", null, mdx(\"li\", {\n parentName: \"ul\"\n }, \"Unit8\\uFF1A\\u521D\\u5B78\\u8005\\u53EA\\u7BA1\\u62FF\\u5206\\uFF0C\\u8AB0\\u7BA1\\u4F60\\u4EC0\\u9EBC\\u6548\\u7387\"), mdx(\"li\", {\n parentName: \"ul\"\n }, \"Unit9\\uFF1A\\u672A\\u4F86\\u7684\\u8DEF\\u9084\\u5F88\\u6F2B\\u9577\\uFF0C\\u4F60\\u9084\\u5DEE\\u5F97\\u9060\\u5462\")), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u8AB2\\u7A0B\\u76EE\\u6A19\"), mdx(\"p\", null, \"\\u89BA\\u5F97 \", mdx(\"a\", _extends({\n parentName: \"p\"\n }, {\n \"href\": \"https://oj.lidemy.com/problem\"\n }), \"LidemyOJ\"), \" \\u4E0A\\u7684\\u984C\\u76EE\\u90FD\\u5F88\\u7C21\\u55AE\"), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit0.0\\uFF1A\\u4EC0\\u9EBC\\u4EBA\\u9069\\u5408\\u9019\\u5802\\u8AB2\\uFF1F\")), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u8AB0\\u9069\\u5408\\u9019\\u5802\\u8AB2\\uFF1F\"), mdx(\"ol\", null, mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u5DF2\\u7D93\\u6709\\u7A0B\\u5F0F\\u57FA\\u790E\"), mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u5BEB leetcode \\u78B0\\u5230\\u56B4\\u91CD\\u969C\\u7919\"), mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u5BEB\\u4E0D\\u51FA\\u4E5D\\u4E5D\\u4E58\\u6CD5\\u8868\")), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u8AB0\\u4E0D\\u9069\\u5408\\u9019\\u5802\\u8AB2\\uFF1F\"), mdx(\"ol\", null, mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u5BEB leetcode \\u6C92\\u4EC0\\u9EBC\\u592A\\u5927\\u7684\\u554F\\u984C\"), mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u89BA\\u5F97\\u300C\\u7A0B\\u5EA6\\u6E2C\\u9A57\\u300D\\u7684\\u6771\\u897F\\u90FD\\u5F88\\u7C21\\u55AE\")), mdx(\"hr\", null), mdx(\"h1\", null, mdx(\"a\", _extends({\n parentName: \"h1\"\n }, {\n \"href\": \"https://oj.lidemy.com/problem?tag=%E7%A8%8B%E5%BA%A6%E6%B8%AC%E9%A9%97&page=1\"\n }), \"\\u7A0B\\u5EA6\\u6E2C\\u9A57\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit0.1\\uFF1A\\u70BA\\u4EC0\\u9EBC\\u8981\\u4E0A\\u9019\\u5802\\u8AB2\\uFF1F\")), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u9084\\u6C92\\u5B78\\u6703\\u8D70\\uFF0C\\u4F60\\u8981\\u600E\\u9EBC\\u8DD1\\uFF1F\"), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit0.2\\uFF1A\\u8AB2\\u7A0B\\u9032\\u884C\\u65B9\\u5F0F\")), mdx(\"hr\", null), mdx(\"h1\", null, \"Step 1. \\u770B\\u8AB2\\u7A0B\\u5F71\\u7247\"), mdx(\"hr\", null), mdx(\"h1\", null, \"Step 2. \\u5BE6\\u6230\\u7DF4\\u7FD2\"), mdx(\"hr\", null), mdx(\"h1\", null, \"Step 3. \\u4F5C\\u696D\\u7DF4\\u7FD2\"), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit0.3\\uFF1AProject0 \\u4ECB\\u7D39\")), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u5B8C\\u6210\\u4EE5\\u4E0B\\u984C\\u76EE\"), mdx(\"ol\", null, mdx(\"li\", {\n parentName: \"ol\"\n }, mdx(\"a\", _extends({\n parentName: \"li\"\n }, {\n \"href\": \"https://oj.lidemy.com/problem/1001\"\n }), \"LIOJ1001\")), mdx(\"li\", {\n parentName: \"ol\"\n }, mdx(\"a\", _extends({\n parentName: \"li\"\n }, {\n \"href\": \"https://oj.lidemy.com/problem/1002\"\n }), \"LIOJ1002\"))), mdx(\"p\", null, mdx(\"a\", _extends({\n parentName: \"p\"\n }, {\n \"href\": \"https://www.youtube.com/watch?v=v7zv1ixaO3M\"\n }), \"LIOJ \\u64CD\\u4F5C\\u6559\\u5B78\\u5F71\\u7247\")));\n}\n;\nMDXContent.isMDXComponent = true;"}},"pageContext":{"id":"a3d334a0-f4b5-5693-867c-811256db92f7","slug":"/ALG101-too-weak-to-leetcode/public/unit0","title":"先別急著寫 leetcode"}}} -------------------------------------------------------------------------------- /public/page-data/unit5/page-data.json: -------------------------------------------------------------------------------- 1 | {"componentChunkName":"component---node-modules-gatsby-theme-mdx-deck-src-templates-deck-js","path":"/unit5","matchPath":"/unit5/*","result":{"data":{"deck":{"id":"9576162b-69f7-5aa4-b4c7-ac21ae52e376","body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsx mdx */\nvar themes = [Lidemy];\nvar _frontmatter = {};\n\nvar makeShortcode = function makeShortcode(name) {\n return function MDXDefaultShortcode(props) {\n console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n return mdx(\"div\", props);\n };\n};\n\nvar layoutProps = {\n themes: themes,\n _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n var components = _ref.components,\n props = _objectWithoutProperties(_ref, [\"components\"]);\n\n return mdx(MDXLayout, _extends({}, layoutProps, props, {\n components: components,\n mdxType: \"MDXLayout\"\n }), mdx(Fullscreen, {\n mdxType: \"Fullscreen\"\n }), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit5\\uFF1A\\u7D93\\u5178\\u984C\\u76EE\\u89E3\\u89E3\\u770B\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit5.1\\uFF1A\\u9054\\u5230\\u4EC0\\u9EBC\\u7A0B\\u5EA6\\u624D\\u80FD\\u89E3\\u7D93\\u5178\\u984C\\u76EE\\uFF1F\")), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u5BEB\\u7A0B\\u5F0F\\u4E09\\u5BF6\"), mdx(\"p\", null, \"\\u8FF4\\u5708\\u3001\\u51FD\\u5F0F\\u3001\\u5224\\u65B7\\u5F0F\"), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u7D93\\u5178\\u984C\\u76EE\"), mdx(\"p\", null, \"\\u62FF\\u4F86\\u719F\\u6089\\u7A0B\\u5F0F\\u57FA\\u790E\\u8A9E\\u6CD5\\n\\u56E0\\u6B64\\uFF0C\\u300C\\u57FA\\u672C\\u4E0A\\u300D\\u7981\\u6B62\\u4F7F\\u7528\\u5167\\u5EFA\\u51FD\\u5F0F\"), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit5.2\\uFF1A\\u5BE6\\u6230\\uFF1A\\u5224\\u65B7\\u7B49\\u5DEE\\u6578\\u5217\")), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u7B49\\u5DEE\\u6578\\u5217\"), mdx(\"p\", null, \"\\u516C\\u5DEE\\u4E00\\u6A23\\uFF1A1, 3, 5, 7, 9\"), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u89E3\\u984C\\u6D41\\u7A0B\"), mdx(\"ol\", null, mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u5148\\u7B97\\u51FA \", mdx(\"inlineCode\", {\n parentName: \"li\"\n }, \"arr[1] - arr[0]\"), \" \\u7576\\u4F5C\\u516C\\u5DEE\"), mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u5224\\u65B7 \", mdx(\"inlineCode\", {\n parentName: \"li\"\n }, \"arr[i] - arr[i-1]\"), \" \\u662F\\u5426\\u7B49\\u65BC\\u516C\\u5DEE\")), mdx(\"hr\", null), mdx(\"h1\", null, \"Live coding\"), mdx(\"hr\", null), mdx(\"h1\", null, \"Edge case\"), mdx(\"ol\", null, mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u7A7A\\u9663\\u5217\"), mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u53EA\\u6709\\u4E00\\u500B\\u5143\\u7D20\\u7684\\u9663\\u5217\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit5.3\\uFF1A\\u5BE6\\u6230\\uFF1A\\u8EAB\\u5206\\u8B49\\u9A57\\u8B49\")), mdx(\"hr\", null), mdx(\"p\", null, mdx(\"a\", _extends({\n parentName: \"p\"\n }, {\n \"href\": \"https://zh.wikipedia.org/wiki/%E4%B8%AD%E8%8F%AF%E6%B0%91%E5%9C%8B%E5%9C%8B%E6%B0%91%E8%BA%AB%E5%88%86%E8%AD%89\"\n }), \"\\u9A57\\u8B49\\u898F\\u5247 wiki\")), mdx(\"hr\", null), mdx(\"h1\", null, \"Live coding\"), mdx(\"hr\", null), mdx(\"h1\", null, \"Edge case\"), mdx(\"ol\", null, mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u8655\\u7406\\u4E0D\\u5408\\u6CD5\\u7684\\u8F38\\u5165\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit5.4\\uFF1A\\u5BE6\\u6230\\uFF1A\\u6578\\u5B57\\u4F4D\\u6578\\u52A0\\u7E3D\")), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u89E3\\u984C\\u65B9\\u6CD5\"), mdx(\"ol\", null, mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u6578\\u5B78\\u89E3\"), mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u5B57\\u4E32\\u5077\\u5403\\u6B65\\u89E3\")), mdx(\"hr\", null), mdx(\"h1\", null, \"Live coding\"), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit5.5\\uFF1AProject5 \\u4ECB\\u7D39\")), mdx(\"hr\", null), mdx(\"h1\", null, \"Project5\"), mdx(\"p\", null, \"\\u8ACB\\u53C3\\u8003\", mdx(\"a\", _extends({\n parentName: \"p\"\n }, {\n \"href\": \"https://github.com/Lidemy/ALG101-too-weak-to-leetcode/tree/master/unit5\"\n }), \"\\u9019\\u908A\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project5\\uFF1ALIOJ 1026\\uFF1A\\u5224\\u65B7\\u7B49\\u6BD4\\u6578\\u5217\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project5\\uFF1ALIOJ 1027\\uFF1A\\u4FE1\\u7528\\u5361\\u865F\\u9A57\\u8B49\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project5\\uFF1ALIOJ 1028\\uFF1A\\u751F\\u547D\\u9748\\u6578\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project5\\uFF1ALIOJ 1029\\uFF1A\\u52A0\\u6E1B\\u4E58\\u9664\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project5\\uFF1ALIOJ 1030\\uFF1A\\u5224\\u65B7\\u8FF4\\u6587\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project5\\uFF1ALIOJ 1031\\uFF1A\\u5B8C\\u5168\\u5E73\\u65B9\\u548C\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project5\\uFF1ALIOJ 1032\\uFF1A\\u5E73\\u9762\\u8DDD\\u96E2\\u8A08\\u7B97\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project5\\uFF1ALIOJ 1033\\uFF1A\\u6700\\u8FD1\\u9EDE\\u5C0D\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project5\\uFF1ALIOJ 1034\\uFF1A\\u51F1\\u85A9\\u52A0\\u5BC6\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project5\\uFF1ALIOJ 1046\\uFF1A\\u5708\\u5708\\u53C9\\u53C9\")));\n}\n;\nMDXContent.isMDXComponent = true;"}},"pageContext":{"matchPath":"/unit5/*","id":"9576162b-69f7-5aa4-b4c7-ac21ae52e376","slug":"/ALG101-too-weak-to-leetcode/public/unit5","title":"先別急著寫 leetcode"}}} -------------------------------------------------------------------------------- /public/page-data/ALG101-too-weak-to-leetcode/public/unit5/print/page-data.json: -------------------------------------------------------------------------------- 1 | {"componentChunkName":"component---node-modules-gatsby-theme-mdx-deck-src-templates-deck-js","path":"/ALG101-too-weak-to-leetcode/public/unit5/print","result":{"data":{"deck":{"id":"9576162b-69f7-5aa4-b4c7-ac21ae52e376","body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsx mdx */\nvar themes = [Lidemy];\nvar _frontmatter = {};\n\nvar makeShortcode = function makeShortcode(name) {\n return function MDXDefaultShortcode(props) {\n console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n return mdx(\"div\", props);\n };\n};\n\nvar layoutProps = {\n themes: themes,\n _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n var components = _ref.components,\n props = _objectWithoutProperties(_ref, [\"components\"]);\n\n return mdx(MDXLayout, _extends({}, layoutProps, props, {\n components: components,\n mdxType: \"MDXLayout\"\n }), mdx(Fullscreen, {\n mdxType: \"Fullscreen\"\n }), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit5\\uFF1A\\u7D93\\u5178\\u984C\\u76EE\\u89E3\\u89E3\\u770B\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit5.1\\uFF1A\\u9054\\u5230\\u4EC0\\u9EBC\\u7A0B\\u5EA6\\u624D\\u80FD\\u89E3\\u7D93\\u5178\\u984C\\u76EE\\uFF1F\")), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u5BEB\\u7A0B\\u5F0F\\u4E09\\u5BF6\"), mdx(\"p\", null, \"\\u8FF4\\u5708\\u3001\\u51FD\\u5F0F\\u3001\\u5224\\u65B7\\u5F0F\"), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u7D93\\u5178\\u984C\\u76EE\"), mdx(\"p\", null, \"\\u62FF\\u4F86\\u719F\\u6089\\u7A0B\\u5F0F\\u57FA\\u790E\\u8A9E\\u6CD5\\n\\u56E0\\u6B64\\uFF0C\\u300C\\u57FA\\u672C\\u4E0A\\u300D\\u7981\\u6B62\\u4F7F\\u7528\\u5167\\u5EFA\\u51FD\\u5F0F\"), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit5.2\\uFF1A\\u5BE6\\u6230\\uFF1A\\u5224\\u65B7\\u7B49\\u5DEE\\u6578\\u5217\")), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u7B49\\u5DEE\\u6578\\u5217\"), mdx(\"p\", null, \"\\u516C\\u5DEE\\u4E00\\u6A23\\uFF1A1, 3, 5, 7, 9\"), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u89E3\\u984C\\u6D41\\u7A0B\"), mdx(\"ol\", null, mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u5148\\u7B97\\u51FA \", mdx(\"inlineCode\", {\n parentName: \"li\"\n }, \"arr[1] - arr[0]\"), \" \\u7576\\u4F5C\\u516C\\u5DEE\"), mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u5224\\u65B7 \", mdx(\"inlineCode\", {\n parentName: \"li\"\n }, \"arr[i] - arr[i-1]\"), \" \\u662F\\u5426\\u7B49\\u65BC\\u516C\\u5DEE\")), mdx(\"hr\", null), mdx(\"h1\", null, \"Live coding\"), mdx(\"hr\", null), mdx(\"h1\", null, \"Edge case\"), mdx(\"ol\", null, mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u7A7A\\u9663\\u5217\"), mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u53EA\\u6709\\u4E00\\u500B\\u5143\\u7D20\\u7684\\u9663\\u5217\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit5.3\\uFF1A\\u5BE6\\u6230\\uFF1A\\u8EAB\\u5206\\u8B49\\u9A57\\u8B49\")), mdx(\"hr\", null), mdx(\"p\", null, mdx(\"a\", _extends({\n parentName: \"p\"\n }, {\n \"href\": \"https://zh.wikipedia.org/wiki/%E4%B8%AD%E8%8F%AF%E6%B0%91%E5%9C%8B%E5%9C%8B%E6%B0%91%E8%BA%AB%E5%88%86%E8%AD%89\"\n }), \"\\u9A57\\u8B49\\u898F\\u5247 wiki\")), mdx(\"hr\", null), mdx(\"h1\", null, \"Live coding\"), mdx(\"hr\", null), mdx(\"h1\", null, \"Edge case\"), mdx(\"ol\", null, mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u8655\\u7406\\u4E0D\\u5408\\u6CD5\\u7684\\u8F38\\u5165\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit5.4\\uFF1A\\u5BE6\\u6230\\uFF1A\\u6578\\u5B57\\u4F4D\\u6578\\u52A0\\u7E3D\")), mdx(\"hr\", null), mdx(\"h1\", null, \"\\u89E3\\u984C\\u65B9\\u6CD5\"), mdx(\"ol\", null, mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u6578\\u5B78\\u89E3\"), mdx(\"li\", {\n parentName: \"ol\"\n }, \"\\u5B57\\u4E32\\u5077\\u5403\\u6B65\\u89E3\")), mdx(\"hr\", null), mdx(\"h1\", null, \"Live coding\"), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Unit5.5\\uFF1AProject5 \\u4ECB\\u7D39\")), mdx(\"hr\", null), mdx(\"h1\", null, \"Project5\"), mdx(\"p\", null, \"\\u8ACB\\u53C3\\u8003\", mdx(\"a\", _extends({\n parentName: \"p\"\n }, {\n \"href\": \"https://github.com/Lidemy/ALG101-too-weak-to-leetcode/tree/master/unit5\"\n }), \"\\u9019\\u908A\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project5\\uFF1ALIOJ 1026\\uFF1A\\u5224\\u65B7\\u7B49\\u6BD4\\u6578\\u5217\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project5\\uFF1ALIOJ 1027\\uFF1A\\u4FE1\\u7528\\u5361\\u865F\\u9A57\\u8B49\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project5\\uFF1ALIOJ 1028\\uFF1A\\u751F\\u547D\\u9748\\u6578\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project5\\uFF1ALIOJ 1029\\uFF1A\\u52A0\\u6E1B\\u4E58\\u9664\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project5\\uFF1ALIOJ 1030\\uFF1A\\u5224\\u65B7\\u8FF4\\u6587\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project5\\uFF1ALIOJ 1031\\uFF1A\\u5B8C\\u5168\\u5E73\\u65B9\\u548C\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project5\\uFF1ALIOJ 1032\\uFF1A\\u5E73\\u9762\\u8DDD\\u96E2\\u8A08\\u7B97\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project5\\uFF1ALIOJ 1033\\uFF1A\\u6700\\u8FD1\\u9EDE\\u5C0D\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project5\\uFF1ALIOJ 1034\\uFF1A\\u51F1\\u85A9\\u52A0\\u5BC6\")), mdx(\"hr\", null), mdx(Layout, {\n mdxType: \"Layout\"\n }, mdx(\"h1\", null, \"\\u5148\\u5225\\u6025\\u8457\\u5BEB leetcode\"), mdx(\"h2\", null, \"Project5\\uFF1ALIOJ 1046\\uFF1A\\u5708\\u5708\\u53C9\\u53C9\")));\n}\n;\nMDXContent.isMDXComponent = true;"}},"pageContext":{"id":"9576162b-69f7-5aa4-b4c7-ac21ae52e376","slug":"/ALG101-too-weak-to-leetcode/public/unit5","title":"先別急著寫 leetcode"}}} --------------------------------------------------------------------------------