5 kyu
參數是兩個長度一樣的陣列,回傳陣列對應元素之間扣除後,平方差的平均。
var solution = function (firstArray, secondArray) {
return secondArray.map((item, index) => {
return Math.pow(item - firstArray[index], 2)
}).reduce((sum, work) => sum += work) / secondArray.length;
}
完全沒有經過構想直接一次實作完成。
兩個陣列參數長度一樣,表示互換的話對應的 index 也是相同的、並且輸出的結果長度也是一樣的,因此使用 map 方法來迭代陣列。
返回的結果是相扣除之後的平方,也因為平方不需要考慮正負。
最後 reduce 加總陣列每一個元素並除以長度,最後返回結果。
function solution(a, b) {
return a.reduce(function (s, n, i) {
return s + Math.pow(n - b[i], 2)
}, 0) / a.length;
}
其實也是同樣的概念,但把兩件事合併一起,讓程式碼更加簡潔。
s 代表累加值,會帶入 reduce 第二參數 0(如果有的話。
n 表示迭代到的元素,也就是從 a[0] 開始,i 則是陣列索引。
同時把元素扣除另一個陣列的對應位置,並累加平方值。
最後 reduce 輸出的唯一值除以長度,即為答案。
其實解題到現在,除了感受到自己實作上還需要加油外。
英文也需要加油⋯⋯有好多淵源頗深的邏輯題,演算法真是博大精深🥹。