贪心算法解决跳跃游戏的c++完整代码包括头文件主函数等
以下是一个使用贪心算法解决跳跃游戏的完整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函数来判断是否能够到达最后一个位置,并输出结果。
希望对你有帮助
原文地址: https://www.cveoy.top/t/topic/hSsr 著作权归作者所有。请勿转载和采集!