递归
目标和
// 广度便利
const findTrage = (nums,target)=> {
const dfs = (deep,nums,target) => {
if(deep === nums.length) {
if(target === 0) res++;
return;
}
dfs(deep+1,nums, target + nums[deep]);
dfs(deep+1,nums, target - nums[deep])
}
let res = 0;
dfs(0,nums,target);
return res;
}
console.log(findTrage([1,1,1,1,1],3)
代码题青蛙跳
function frogJump(n) {
if (n <= 1) {
return 1;
}
let dp = new Array(n + 1);
dp[0] = 1; // 0级台阶有1种跳法(不跳)
dp[1] = 1; // 1级台阶有1种跳法(跳1级)
for (let i = 2; i <= n; i++) {
// 到达第i级台阶的跳法等于到达第i-1级台阶的跳法加上到达第i-2级台阶的跳法
dp[i] = dp[i - 1] + dp[i - 2];
}
return dp[n];
}
// 示例
console.log(frogJump(3)); // 输出: 3