JumpGame,JumpGame2
2024-09-27 05:47:40
JumpGame:给定一个非负整数数组,开始在第一个位置,每个位置上的数字代表最大可以跳跃的步数,判断能不能跳到最后一个位置。
例如:A=[2,3,1,1,4],在位置0处,可以跳一步到位置1,位置1跳3步到位置4.
public class JumpGame {
public static boolean canJump(int[] a)
{
int reach = 0;//代表最多能到达的位置
int i = 0; //代表每次走一步能到达的位置
for(; i < a.length && i <= reach; i ++)
{
reach = Math.max(reach, i + a[i]);
}
return i == a.length;
}
public static void main(String[] args) {
int[] a = {2,3,1,1,4};
System.out.println(canJump(a));
}
}
JumpGame2:给定一个非负整数数组,开始在第一个位置,每个位置上的数字代表最大可以跳跃的步数,求跳到最后位置需要最少的跳跃次数。
例如:A=[2,3,1,1,4],在位置0处,可以跳一步到位置1,位置1跳3步到位置4.最少次数是2。用一个数组记录到达每个位置的前一个位置。
public static int canJump2(int[] a)
{
int pre[] = new int[a.length];//记录到达i的前一位置
int reach = 0;
for(int i = 0; i < a.length; i ++)
{
if(i+a[i] > reach)
{
//reach+1 - i+a[i]的前一位置是i
for(int j = reach + 1; j <= i + a[i] && j < a.length; j ++)
{
pre[j] = i;
}
reach = i + a[i];
}
}
int count = 0;
int k = a.length -1;
while(k > 0)
{
k = pre[k];
count ++;
}
return count;
}
最新文章
- 解决手机浏览器上input 输入框导致页面放大的问题(记录)
- 转《WF编程》笔记目录
- EF里一对一、一对多、多对多关系的配置
- 数据结构与算法(1)支线任务4——Lowest Common Ancestor of a Binary Tree
- Android 程序中得到root activity的引用
- 神奇的main方法详解
- java JPEGImageEncoder;图像处理
- html--整站制作
- 为什么android的R类要定义成16进制
- No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK? 问题
- chmod -x chmod的N种解法
- 『重构--改善既有代码的设计』读书笔记----Extract Method
- kali使用
- K3日志定时备份
- JavaScript实用的工具/类库
- 解决ssh登录慢的问题
- docker - 容器里安装redis
- 产品设计教程:wireframe,prototype,mockup到底有何不同?
- 33 个 2017 年必须了解的 iOS 开源库
- 欢迎使用CSDN-markdown编辑器u
热门文章
- org.apache.zookeeper.ClientCnxn - Got ping response for sessionid: 0x160fd6f04410017 after 0ms
- 170227、java分布式系统开关功能设计(服务升降级)
- The Thinking of AutomaticTest(有关自动化测试的思考)
- Vsftpd匿名登录设置
- 2.sublime的配置,
- Spring - Netty (整合)
- MAC OSX--docker
- 初识idea
- SQL 将列转成字符串并用逗号分隔
- 使用idea的条件断点快速定位注解的处理类