到了經典題目的最後了,來練習求出最近點對、凱薩加密和圈圈叉叉小遊戲。
課程相關資訊
[連結]:https://lidemy.com/p/alg101-leetcode
Course 64 ~ Course 66 (全部一共有 106 Courses)
請注意:本系列文章為個人對應課程的消化吸收後,所整理出來的內容。換言之,並不一定會包含全部的課程內容,也有可能會添加其他資源來說明。
內容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
//1033 function solve(lines){ let n = Number(lines[0]) let dots = [] for(let i=1; i<lines.length; i++){ let temp = lines[i].split(' ') dots.push({ x:Number(temp[0]), y:Number(temp[1]) }) } let min = Infinity let ans = null for(let i=0; i<dots.length; i++){ for(let j=i+1; j<dots.length; j++){ let distance = calculateDistance([dots[i].x,dots[i].y,dots[j].x,dots[j].y]) if(distance<min){ min = distance ans = { x1:dots[i].x, x2:dots[j].x, y1:dots[i].y, y2:dots[j].y } } } } if(ans.x1 > ans.x2){ console.log(ans.x2+ " " + ans.y2) console.log(ans.x1+ " " + ans.y1) }else if(ans.x1 < ans.x2){ console.log(ans.x1+ " " + ans.y1) console.log(ans.x2+ " " + ans.y2) }else{ if(ans.y1 > ans.y2){ console.log(ans.x2+ " " + ans.y2) console.log(ans.x1+ " " + ans.y1) }else{ console.log(ans.x1+ " " + ans.y1) console.log(ans.x2+ " " + ans.y2) } } } function calculateDistance(numbers){ let distance = Math.sqrt(Math.pow(Math.abs(numbers[0]-numbers[2]),2) + Math.pow(Math.abs(numbers[1]-numbers[3]),2)) let result = Number(distance.toFixed(2)) return result } // 1034 function solve(lines){ let n = Number(lines[0]) let str = lines[1] let result = "" for(let i=0;i<str.length;i++){ result += caesarCipher(n, str[i]) } console.log(result) } function caesarCipher(n,str){ let code = str.charCodeAt(0) - 97 let newCode = (code + n) % 26 return String.fromCharCode(newCode + 97) } //1046 function solve(lines){ console.log(whoIsWinner(lines)) } function whoIsWinner(lines){ for(let i=0; i<3; i++){ if(lines[i][0]===lines[i][1] && lines[i][1]===lines[i][2]){ return lines[i][0] } } for(let i=0; i<3; i++){ if(lines[0][i]===lines[1][i] && lines[1][i]===lines[2][i]){ return lines[0][i] } } if(lines[0][0]===lines[1][1] && lines[1][1]===lines[2][2]){ return lines[0][0] } if(lines[0][2]===lines[1][1] && lines[1][1]===lines[2][0]){ return lines[0][2] } return "DRAW" } |
相關文章
★全文分享★ [筆記] ALG101 – 先別急著寫 LeetCode22
最後一個為有效率的求取最大整數連續和
★全文分享★ [筆記] ALG101 – 先別急著寫 LeetCode21
先前做過的簡單排序法、搜尋數字,改用
★全文分享★ [筆記] ALG101 – 先別急著寫 LeetCode20
接著來練習用迴圈的方法來解決陣列最短
★全文分享★ [筆記] ALG101 – 先別急著寫 LeetCode19
接下來練習搜尋數字和連續整數和,先從
★全文分享★ [筆記] ALG101 – 先別急著寫 LeetCode18
先求有,再求好。這個部分要稍微帶到演
★全文分享★ [筆記] ALG101 – 先別急著寫 LeetCode17
接下來的兩題,其核心概念為 N 進位數和
★全文分享★ [筆記] ALG101 – 先別急著寫 LeetCode16
國中程度競賽題的實作,其實難度本身不
★全文分享★ [筆記] ALG101 – 先別急著寫 LeetCode15
接著要來進行一些國中程度競賽題的挑戰
★全文分享★ [筆記] ALG101 – 先別急著寫 LeetCode14
這篇筆記下實作 String.prototype.padEnd, String.p
★全文分享★ [筆記] ALG101 – 先別急著寫 LeetCode13
這篇筆記下實作 String.prototype.toLowerCase, Str
★全文分享★ [筆記] ALG101 – 先別急著寫 LeetCode12
這篇筆記下實作 Array.prototype.fill, Array.proto
★全文分享★ [筆記] ALG101 – 先別急著寫 LeetCode11
更多的練習是必要的,這篇筆記下實作 Arr
★全文分享★ [筆記] ALG101 – 先別急著寫 LeetCode10
雖說 JavaScript 已經有不少的內建函式,例
★全文分享★ [筆記] ALG101 – 先別急著寫 LeetCode8
繼續更多的練習,來進行加減乘除、迴文
★全文分享★ [筆記] ALG101 – 先別急著寫 LeetCode7
在盡可能不使用內建函式的情況下,來判
★全文分享★ [筆記] ALG101 – 先別急著寫 LeetCode6
經歷過前幾個單元的準備,總算是要進入
★全文分享★ [筆記] ALG101 – 先別急著寫 LeetCode5
這個階段透過實作練習,讓你可以了解到
★全文分享★ [筆記] ALG101 – 先別急著寫 LeetCode4
在實際解決題目之前,要先理解平台修改
★全文分享★ [筆記] ALG101 – 先別急著寫 LeetCode3
講述空間、時間和範圍型態的限制外,以
★全文分享★ [筆記] ALG101 – 先別急著寫 LeetCode2
除了撰寫虛擬碼外,另外一件重要的環節
★全文分享★ [筆記] Lidemy 鋰學院 – 先別急著寫 LeetCode – 1
近年來想要進行程式人員相關的面試前,