FreeCodeCamp 中級(jí)算法
個(gè)人筆記猪贪,僅作留檔
-
Sum All Numbers in a Range
我們會(huì)傳遞給你一個(gè)包含兩個(gè)數(shù)字的數(shù)組。返回這兩個(gè)數(shù)字和它們之間所有數(shù)字的和麻车。
最小的數(shù)字并非總在最前面。
function sumAll(arr) {
var a = Math.max(arr[0],arr[1]);
var b = Math.min(arr[0],arr[1]);
var sum=0;
for(var i=b;i<=a;i++){
sum+=i;
}
return sum;
}
sumAll([1, 4]);
-
Diff Two Arrays
比較兩個(gè)數(shù)組斗这,然后返回一個(gè)新數(shù)組动猬,該數(shù)組的元素為兩個(gè)給定數(shù)組中所有獨(dú)有的數(shù)組元素。換言之表箭,返回兩個(gè)數(shù)組的差異赁咙。
function diff(arr1, arr2) {
var r=[];
arr1.forEach(o=>{
if(arr2.indexOf(o)<0){
r.push(o);
}
});
arr2.forEach(o=>{
if(arr1.indexOf(o)<0){
r.push(o);
}
});
return r;
}
diff([1, 2, 3, 5], [1, 2, 3, 4, 5]);
-
Roman Numeral Converter
將給定的數(shù)字轉(zhuǎn)換成羅馬數(shù)字。
所有返回的 羅馬數(shù)字 都應(yīng)該是大寫(xiě)形式免钻。
function convert(num) {
var rTable = ["M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"];
var nTable = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1];
var result = '';
for (var i = 0; i < nTable.length; i++) {
while (num >= nTable[i]) {
num -= nTable[i];
result += rTable[i];
}
}
return result;
}
convert(36);
-
title
quote
code