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;
}

最新文章

  1. 解决手机浏览器上input 输入框导致页面放大的问题(记录)
  2. 转《WF编程》笔记目录
  3. EF里一对一、一对多、多对多关系的配置
  4. 数据结构与算法(1)支线任务4——Lowest Common Ancestor of a Binary Tree
  5. Android 程序中得到root activity的引用
  6. 神奇的main方法详解
  7. java JPEGImageEncoder;图像处理
  8. html--整站制作
  9. 为什么android的R类要定义成16进制
  10. No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK? 问题
  11. chmod -x chmod的N种解法
  12. 『重构--改善既有代码的设计』读书笔记----Extract Method
  13. kali使用
  14. K3日志定时备份
  15. JavaScript实用的工具/类库
  16. 解决ssh登录慢的问题
  17. docker - 容器里安装redis
  18. 产品设计教程:wireframe,prototype,mockup到底有何不同?
  19. 33 个 2017 年必须了解的 iOS 开源库
  20. 欢迎使用CSDN-markdown编辑器u

热门文章

  1. org.apache.zookeeper.ClientCnxn - Got ping response for sessionid: 0x160fd6f04410017 after 0ms
  2. 170227、java分布式系统开关功能设计(服务升降级)
  3. The Thinking of AutomaticTest(有关自动化测试的思考)
  4. Vsftpd匿名登录设置
  5. 2.sublime的配置,
  6. Spring - Netty (整合)
  7. MAC OSX--docker
  8. 初识idea
  9. SQL 将列转成字符串并用逗号分隔
  10. 使用idea的条件断点快速定位注解的处理类