FreeCodeCamp 中级算法
个人笔记,仅作留档
-
Sum All Numbers in a Range
我们会传递给你一个包含两个数字的数组。返回这两个数字和它们之间所有数字的和。
最小的数字并非总在最前面。
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
比较两个数组,然后返回一个新数组,该数组的元素为两个给定数组中所有独有的数组元素。换言之,返回两个数组的差异。
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
将给定的数字转换成罗马数字。
所有返回的 罗马数字 都应该是大写形式。
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