首页 > 代码库 > leetcode-Jump game II
leetcode-Jump game II
Greedy
1 class Solution 3 public: 4 int jump(int A[], int n) { 5 int start = 0; 6 int end = 0; 7 int count = 0; 8 if (n == 1) return 0; 9 while (end < n)10 {//贪心策略:每次都走到最远的地方。下一轮再把上一轮的end+1作为新的start。直到能覆盖A[n-1]为止。11 int max = 0;12 count++;13 for (int i = start; i <= end; i++)14 {15 if (A[i] + i >= n - 1)16 return count;17 if (A[i] + i > max)18 max = A[i] + i;//其实就是计算下一轮循环所能到达的最远的地方。19 }20 start = end + 1;//下一轮的start以这一轮的end再加1为起点。21 end = max;//以这一轮算出的能到达的最远的地方作为下一轮循环的终点。22 }23 }24 };
leetcode-Jump game II
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。