自学内容网 自学内容网

代码随想录算法训练营第二十八天-贪心算法-55. 跳跃游戏

  • 这是一道把看起来扑朔迷离的数学题巧妙转化成范围判定的题目
  • 真是思想闪光之处,让人叹为观止
  • 把计算哪个格子步数可以走到最后一条,改变成,基某一个格处所走的范围是否可以覆盖最后一格
#include <iostream>
#include <vector>

class Solution {
public:
    bool canJump(std::vector<int>& nums) {
        int cover = 0;
        if (nums.size() == 1)
            return true;
        for (int i = 0; i <= cover; ++i) {
            cover = std::max(cover, i + nums.at(i));
            if (cover >= nums.size() - 1)
                return true;
        }
        return false;
    }
};

int main()
{
    Solution s;
    std::vector<int> nums {3, 2, 1, 0, 4};
    std::cout << s.canJump(nums) << std::endl;
    return 0;
}

原文地址:https://blog.csdn.net/taoyong001/article/details/145015299

免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!