leetcode 55. Jump Game | 55. 跳跃游戏(暴力递归->傻缓存->DP)
题目
https://leetcode.com/problems/jump-game/
题解
又是经典套路,暴力递归->傻缓存->DP
没写草稿,直接看代码吧
class Solution {public boolean canJump(int[] nums) {// 【Solution 1】暴力递归
// return process1(0, nums);// 【Solution 2】傻缓存
// return process2(0, nums, new int[nums.length]);// 【Solution 3】自底向上的dpboolean[] dp = new boolean[nums.length];dp[nums.length - 1] = true;for (int i = nums.length - 2; i >= 0; i--) {for (int j = 1; j <= nums[i]; j++) {if (i + j >= nums.length - 1) {dp[i] = true;break;}if (dp[i + j]) {dp[i] = true;break;}}}return dp[0];}// 【Solution 2】dp数组含义: 0=未知 1=true -1=falsepublic boolean process2(int i, int[] nums, int[] dp) {if (i >= nums.length - 1) return true;if (dp[i] != 0) return dp[i] == 1;for (int j = 1; j <= nums[i]; j++) {if (process2(i + j, nums, dp)) {dp[i] = 1;return true;}}dp[i] = -1;return false;}// 【Solution 1】递归含义:从i位置开始跳,能不能到终点?public boolean process1(int i, int[] nums) {if (i >= nums.length - 1) return true;for (int j = 1; j <= nums[i]; j++) {if (process1(i + j, nums)) return true;}return false;}
}
leetcode 55. Jump Game | 55. 跳跃游戏(暴力递归->傻缓存->DP)相关推荐
- JavaScript实现backtracking Jump Game回溯跳跃游戏算法(附完整源码)
JavaScript实现backtracking Jump Game回溯跳跃游戏算法(附完整源码) backtrackingJumpGame.js完整源代码 backtrackingJumpGame. ...
- Leetcode1696. 跳跃游戏 VI[C++题解]:dp和单调队列求滑动窗口最值
文章目录 题目分析 题目链接 单调队列板子链接 Deque知识补充 题目分析 题目重述:给定一个数组(有正数有负数)和一个步长k,从下标0处开始往前跳,每次最多往前跳k步.求跳到最后一个位置,得分之和 ...
- 【LeetCode】LeetCode之跳跃游戏Ⅱ——暴力解法+动态规划+贪婪算法
1.题目描述
- 45. Jump Game II(跳跃游戏II)
原题链接:https://leetcode.com/problems/jump-game-ii/ 这道题比较适合用贪心来做,局部的最优解最后刚好是整体的最优解. 如下图,开始的位置是 2,可跳的范围是 ...
- leetcode 877. Stone Game | 877. 石子游戏(递归/动态规划/数学解法)
题目 https://leetcode.com/problems/stone-game/ 题解 搜了一下 stone game,结果.. 进入正题: 一开始写了个递归,超时了.没想出怎么写 dp,看了 ...
- 先后抽纸牌游戏 暴力递归
题目描述: 给定一个整形数组arr,代表数值不同的纸牌排成一条线 玩家A和玩家B一次拿走每张纸牌 规定玩家A先拿,玩家B后拿 但是每个玩家每次只能只能拿走最左或者最右的纸牌 双方玩家都会使得对方在改变 ...
- leetcode 712. Minimum ASCII Delete Sum for Two Strings | 712. 两个字符串的最小ASCII删除和(暴力递归->傻缓存->DP)
题目 https://leetcode.com/problems/minimum-ascii-delete-sum-for-two-strings/ 题解 经典的 暴力递归 -> 傻缓存 -&g ...
- leetcode 1143. Longest Common Subsequence | 1143. 最长公共子序列(动态规划,暴力递归->傻缓存->dp)
题目 https://leetcode.com/problems/longest-common-subsequence/ 题解 经典的 暴力递归 -> 傻缓存 -> dp 题目,以 &qu ...
- leetcode 714. Best Time to Buy and Sell Stock with Transaction Fee | 714. 买卖股票的佳最时机含手续费(递归->傻缓存->dp)
题目 https://leetcode.com/problems/best-time-to-buy-and-sell-stock-with-transaction-fee/ 题解 经典的 暴力递归 - ...
最新文章
- R语言可视化包ggplot2移除(remove)可视化结果的图例(legend)实战
- 【年终总结】2019年有三AI知识星球做了什么,明年又会做什么
- java 定时_Java线上定时任务不定期挂掉问题分析
- s5pv210——nandflash和inand的基础理论
- java 原子类_小学妹教你并发编程的三大特性:原子性、可见性、有序性
- 米斯特白帽培训讲义 漏洞篇 XSS
- Java数组之冒泡排序
- Docker删除镜像是报错:Error response from daemon: conflict: unable to remove repository reference “xxx“
- 浅谈打印机驱动安装的常见方法及安全防护
- 如何将PPT制成二维码?
- windows微信多开
- 记一次muse-ui 使用
- dsa签名 linux_linux SElinux防护 加密解密 gpg签名与认证
- 信创培训第一课:linux操作系统基础
- 如何在鼠标右键菜单中添加自定义菜单?工效率提升一倍
- NIST加密标准是什么意思?
- 阿里P8架构师深度概述互联网分布式架构
- Centos6.6安装简易桌面环境
- 照镜子——2018年2月3-6日
- Xcode 11的问题及 Xcode 11 beta 1和beta 2 版下载链接, 官方下载后上传到百度网盘的.