1、你是一个盗窃专家,某一天晚上你要去盗窃某一条街道的一排房子。这些房子都有相连的防盗系统,如果你把相邻的两家都偷了那么就会触发报警器。用一个数组来表示这些房子的金钱数量,请你完成 rob 函数,计算出在不触发报警器的情况下最多能偷多少钱。例如:
// 其实就是数组奇数项和偶数项比大小
// 方法一:
const rob = (nums) => {
let currentMax = 0;
let prevMax = 0;
nums.map(item => {
let temp = currentMax;
currentMax = Math.max(prevMax + item, currentMax);
prevMax = temp
})
return currentMax;
}
// 方法二:
const rob = (nums) => {
let even = 0
let odd = 0
for(let i = 0; i < nums.length; i++){
if(i % 2 === 0){
odd += nums[i]
}else{
even += nums[i]
}
}
return odd >even ? odd : even
}
不断更新中。。。
网友评论