以下是一个使用贪心算法解决跳跃游戏的完整C++代码:

#include <vector>
#include <iostream>

using namespace std;

bool canJump(vector<int>& nums) {
    int n = nums.size();
    int maxPos = 0;
    
    for (int i = 0; i < n; ++i) {
        if (i > maxPos) { // 当前位置已经无法到达
            return false;
        }
        maxPos = max(maxPos, i + nums[i]); // 更新能够到达的最远位置
    }
    
    return true;
}

int main() {
    vector<int> nums = {2, 3, 1, 1, 4};
    
    if (canJump(nums)) {
        cout << "可以到达最后一个位置" << endl;
    } else {
        cout << "无法到达最后一个位置" << endl;
    }
    
    return 0;
}

在这个代码中,函数canJump使用贪心算法来判断能否从数组的第一个位置跳到最后一个位置。函数中使用变量maxPos来记录当前能够到达的最远位置,遍历数组中的每个位置,更新maxPos为当前位置能够到达的最远位置。如果在遍历过程中发现当前位置已经无法到达,则返回false。如果遍历完成后,maxPos大于等于数组的最后一个位置,则返回true,表示能够到达最后一个位置。否则,返回false

main函数中,定义了一个测试用例数组nums,调用canJump函数来判断是否能够到达最后一个位置,并输出结果。

希望对你有帮助

贪心算法解决跳跃游戏的c++完整代码包括头文件主函数等

原文地址: https://www.cveoy.top/t/topic/hSsr 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录