给你一个非负整数数组 nums ,你最初位于数组的第一个位置。
数组中的每个元素代表你在该位置可以跳跃的最大长度。
你的目标是使用最少的跳跃次数到达数组的最后一个位置。
假设你总是可以到达数组的最后一个位置。
- class Solution {
- public int jump(int[] nums) {
- int n = nums.length;
- int len = n - 1;
- int res = 0;
- while(len > 0){
- for(int i = 0; i < len; i++){
- if(i+ nums[i] >= len){
- len = i;
- res++;
- break;
- }
- }
- }
- return res;
- }
- }
- class Solution {
- public int jump(int[] nums) {
- int position = nums.length;
- int maxPosition = 0;
- int end = 0;
- int res = 0;
- for(int i = 0; i < position - 1; i++){
- maxPosition = Math.max(maxPosition,i+nums[i]);
- if(i == end){
- end = maxPosition;
- res++;
- }
- }
- return res;
- }
- }