没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
算法
1. 动态规划
https://zhuanlan.zhihu.com/p/365698607
压缩空间 => 滚动数组
70 爬楼梯
/**
* @param {number} n
* @return {number}
*/
var climbStairs = function (n) {
let dp = new Array(n + 1);
dp[0] = 0, dp[1] = 1, dp[2] = 2;
for (let i = 3; i <= n; i++) {
dp[i] = dp[i-1] + dp[i-2];
}
return dp[n];
};
空间优化 O(1)
/**
* @param {number} n
* @return {number}
*/
var climbStairs = function (n) {
let a = 1,
b = 1,
sum;
for (let i = 0; i < n - 1; i++) {
sum = a + b;
a = b;
b = sum;
}
return b;
};
198 打家劫舍
/**
* @param {number[]} nums
* @return {number}
*/
var rob = function (nums) {
/**
* dp[i]表示偷盗前 i 个房屋获得的最大金额
* dp[i] = max(dp[i-1], dp[i-2] + nums[i-1]) 分为偷或者不偷最后一间两种情况
* dp[0] = 0, dp[1] = nums[0]
*/
let n = nums.length,
dp = new Array(n + 1).fill(0);
dp[0] = 0;
dp[1] = nums[0]; 忘写
for (let i = 2; i <= n; i++) { 错写成从 1 开始
dp[i] = Math.max(dp[i - 1], dp[i - 2] + nums[i - 1]);
}
return dp[n];
};
空间优化
/**
* @param {number[]} nums
* @return {number}
*/
var rob = function (nums) {
let n = nums.length;
if (n === 0) return 0;
let pre = 0,
cur = 0;
for (let i = 0; i < n; i++) {
let temp = Math.max(cur, pre + nums[i]);
pre = cur;
cur = temp;
}
return cur;
};
139 单词拆分
/**
* @param {string} s
* @param {string[]} wordDict
* @return {boolean}
*/
var wordBreak = function (s, wordDict) {
/**
* dp[i]表示 s 的前 i 个字符可以由 wordDict 组成。s[0, i-1]可以由 wordDict 组成
* dp[0] = true; 表示空字符串可以由 wordDict 组成
* dp[i] = dp[j] && check(s[j, i-1]) dp[j] = true 表示 s[0, j-1]可以由
wordDict 组成。再验证 s[j, i-1]可以由 wordDict 组成即可
*/
let n = s.length,
dp = new Array(n + 1).fill(false);
dp[0] = true;
for (let i = 0; i <= n; i++) {
for (let j = 0; j <= i; j++) {
if (dp[j] && wordDict.includes(s.substring(j, i))) {
dp[i] = true;
break;
}
}
}
return dp[n];
};
s.substring(start, end)截取 s 在[start, end)之间字符串,包含 start,不包含 end。
322 零钱兑换
/**
* @param {number[]} coins
* @param {number} amount
* @return {number}
*/
var coinChange = function (coins, amount) {
/**
* dp[i]表示总金额为 i 时所需的最小硬币个数
*
剩余14页未读,继续阅读
资源评论
H_LIME
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功