当前位置:   article > 正文

贪心算法--跳跃游戏_算法跳跃游戏目的和要求

算法跳跃游戏目的和要求

     跳跃游戏 II
     给定一个非负整数数组,你最初位于数组的第一个位置。
     数组中的每个元素代表你在该位置可以跳跃的最大长度。
     你的目标是使用最少的跳跃次数到达数组的最后一个位置。

     示例:

     输入: [2,3,1,1,4]
     输出: 2

     解释: 跳到最后一个位置的最小跳跃数是 2。
     从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。
     说明:假设你总是可以到达数组的最后一个位置。

  1. #include<iostream>
  2. #include<vector>
  3. using namespace std;
  4. class Solution {
  5. public:
  6. int jump(vector<int>& nums) {
  7. int step = 0;
  8. int cur = 0;
  9. int next = 0;
  10. int i = 0;
  11. while(i < nums.size()) {
  12. if(cur >= nums.size() - 1) {
  13. break;
  14. }
  15. while(i <= cur) {
  16. next = max(next, nums[i] + i);
  17. i++;
  18. }
  19. step++;
  20. cur = next;
  21. }
  22. return step;
  23. }
  24. };
  25. int main()
  26. {
  27. Solution s;
  28. vector<int> vec = {2,3,1,1,4,3,2,5};
  29. int ret = s.jump(vec);
  30. cout << ret << endl;
  31. return 0;
  32. }

程序运行输出:3  

贪心算法思想:当在值为2的位置时,可以跳值为3或值为1,要想最快就要跳的远,选3;当值为3时,可以跳1,1,4,同理选4,最后直接跳到末尾

     

学习地址:https://blog.csdn.net/hy971216/article/details/82792609

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/518676
推荐阅读
相关标签
  

闽ICP备14008679号