题目链接

题目大意:与55题类似,只是这里要求出跳数。

法一(借鉴):贪心。cur表示当前能到达的最远距离,pre表示上一次能到达的最远距离,每到一个位置更新一次最远距离cur,如果当前位置超过了上一次能到达的最远距离,则更新跳数和上一次能到达的最远距离。代码如下(耗时6ms):

 1     public int jump(int[] nums) {
 2         int cur = 0, res = 0, pre = 0;
 3         for(int i = 0; i < nums.length; i++) {
 4             //如果当前位置超过了上一次可以达到的最远距离,更新跳数和上一次可达到的最远距离
 5             if(i > pre) {
 6                 pre = cur;
 7                 res++;
 8             }
 9             //更新当前最远距离
10             cur = Math.max(cur, i + nums[i]);
11         }
12         return res;
13     }
View Code

相关文章:

  • 2022-02-19
  • 2021-10-03
  • 2021-08-21
  • 2021-05-26
  • 2021-07-11
  • 2021-08-28
  • 2021-08-31
  • 2022-02-15
猜你喜欢
  • 2021-08-24
  • 2022-12-23
  • 2021-10-07
  • 2021-07-30
  • 2021-08-27
相关资源
相似解决方案