码迷,mamicode.com
首页 > 其他好文 > 详细

袋鼠过河

时间:2018-05-29 23:05:57      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:static   out   sub   数组   break   while   integer   puts   -o   

题目描述

一只袋鼠要从河这边跳到河对岸,河很宽,但是河中间打了很多桩子,每隔一米就有一个,每个桩子上都有一个弹簧,袋鼠跳到弹簧上就可以跳的更远。每个弹簧力量不同,用一个数字代表它的力量,如果弹簧力量为5,就代表袋鼠下一跳最多能够跳5米,如果为0,就会陷进去无法继续跳跃。河流一共N米宽,袋鼠初始位置就在第一个弹簧上面,要跳到最后一个弹簧之后就算过河了,给定每个弹簧的力量,求袋鼠最少需要多少跳能够到达对岸。如果无法到达输出-1

输入描述:

输入分两行,第一行是数组长度N (1 ≤ N ≤ 10000),第二行是每一项的值,用空格分隔。

输出描述:

输出最少的跳数,无法到达输出-1
示例1

输入

5
2 0 1 1 1

输出

4
 1 import java.io.BufferedReader;
 2 import java.io.InputStreamReader;
 3    
 4 public class Main {
 5    
 6     public static void main(String[] args) throws Exception{
 7         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
 8         String str;
 9         String[] strs;
10         int n;
11    
12         while((str = br.readLine()) != null){
13             n = Integer.parseInt(str.trim());
14             str = br.readLine();
15             strs = str.trim().split(" ");
16             int[] input = new int[n];
17             for(int i = 0; i < n; ++i)
18                 input[i] = Integer.parseInt(strs[i]);
19             int step = 1;
20             int now = input[0];
21             int next = now;
22             for(int i = 1; i < n; ++i){
23                 if(i == now){
24                     next = Math.max(next, i + input[i]);
25                     if(next == now){
26                         System.out.println(-1);
27                         break;
28                     }
29                     ++step;
30                     now = next;
31                     if(next >= n){
32                         System.out.println(step);
33                         break;
34                     }
35                 }
36                 else{
37                     next = Math.max(next, i + input[i]);
38                     if(next >= n){
39                         System.out.println(++step);
40                         break;
41                     }
42                 }
43             }
44         }
45     }
46 }

 

袋鼠过河

标签:static   out   sub   数组   break   while   integer   puts   -o   

原文地址:https://www.cnblogs.com/4545mdf/p/9108150.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!