lc-day17

重刷leetcode的题,不定期更新(改用javascript刷题)

使用最小花费爬楼梯

题目

1
2
3
4
5
6
7
8
9
10
11
12
13
14
/**
* @param {number[]} cost
* @return {number}
*/
var minCostClimbingStairs = function(cost) {
if(cost.length == 2) return Math.min(cost[0], cost[1]);
let arr = [];
arr[0] = cost[0];
arr[1] = cost[1];
for(let i = 2; i < cost.length; i++){
arr[i] = Math.min(arr[i - 1], arr[i - 2]) + cost[i];
}
return Math.min(arr[arr.length - 1], arr[arr.length - 2]);
};

写下面这题之前要搞清楚js中的二维数组如何定义

方法一:传统的定义方式

1
2
3
4
5
6
7
//定义m行n列的数组,初始化为0
let m = 5;
let n = 4;
let arr = new Array(m);
for(let i = 0; i < n; i++){
arr[i] = new Array(n);
}

方法二:奇淫技巧

1
2
3
4
//定义m行n列的数组,初始化为0
let m = 5;
let n = 4;
const arr = new Array(m).fill(0).map(() => new Array(n).fill(0));

不同路径

题目

明天更