一些简单的小算法
数组的最值
ES6写法:const A = [1,2,3,4,5]; const max = Math.max(...A);
常规写法:var max = Math.max.apply(null,A); var max = Math.max(1,2,3,,4,5)
生成20-30之间的随机整数
Math.round(20 + Math.random()*10)
Math.round(Math.random()*max - min + min) = Math.round(Math.random()*10 + 20)
判断一个数是否为素数
function is_prime(n){
if(n <=1){
return false;
}
const N = Math.floor(Math.sqrt(n));
for( let i = 2;i <= N; i++){
if(n % i === 0){
is_prime = false;
break;
}
}
return is_prime;
}
子数组和整除
slove([3,5,8],13) = true (3+5+8) / 13 = 0
function solve(arr,n){
const s = new Set();
for(let i = 0;i<=arr.length;i++){
for(let j = i+1; j<=arr.length;j++){
const remain = arr.slice(i,j).reduce((x,y)=>x+y,0) % n;
s.add(remain);
}
}
return s.has(0);
}
const s = new Set();
for(let i = 0;i<=arr.length;i++){
for(let j = i+1; j<=arr.length;j++){
const remain = arr.slice(i,j).reduce((x,y)=>x+y,0) % n;
s.add(remain);
}
}
return s.has(0);
}
数组的替换(splice用法)
const arr = [1,2,3,4,5,6];
console.log(arr.splice(2,2,'x'));//截取了3,4将[3,4]替换成'x'
console.log(arr);//1,2,'x',5,6;
arr.splice(2,1);//删除了'X';
arr.splice(2,0,'y'); //从第二位开始删除0位添加了'y'
console.log(arr);//1,2,'y',5,6