最小跳跃次数

青蛙从位置0出发,数组 numsi 表示在位置 i 最多可跳 numsi 步,求到达末位的 ‌最少跳跃次数‌。

答案:

cpp 复制代码
int testJump2(vector<int>& nums) { // 最小跳跃次数。青蛙从位置0出发,数组 nums[i] 表示在位置 i 最多可跳 nums[i] 步,求到达末位的 ‌最少跳跃次数‌。
	vector<int> vec(nums.size(), 0); // vec[i]表示到达i位置的最少跳跃次数

	for (int i = 1; i < nums.size(); i++) {
		bool init = false;
		for (int j = 0; j < i; j++) {
			if (j + nums[j] >= i) {
				// 即从j索引处能1步就跳到i索引处
				if (!init) {
					vec[i] = vec[j] + 1;
					init = true;
				}
				else if (vec[j] + 1 < vec[i]) {
					vec[i] = vec[j] + 1;
				}
			}
		}
	}
	return vec.back();
}

测试:

cpp 复制代码
int main() {
    vector<int> vec{ 2, 3, 1, 1, 4 };
    std::cout << std::format("testJump2, res: {0}", testJump2(vec)) << std::endl;
}

运行:

ok.

相关推荐
JieE21210 分钟前
树与二叉树--JS实例
javascript·数据结构
To_OC12 分钟前
搞懂二叉树递归遍历,我居然是从爬楼梯开始的
前端·javascript·数据结构
Jerryhut19 分钟前
opencv对齐算法及其应用
人工智能·opencv·算法
果丁智能31 分钟前
智慧校园一卡通深度融合方案:基于超级SIM卡的手机碰一碰智能开锁技术落地实践
数据结构·人工智能·python·科技·算法·智能家居·信息与通信
满怀冰雪38 分钟前
第13篇-栈算法入门-括号匹配-表达式与单调栈基础
java·算法
Irissgwe41 分钟前
顺序表和链表
数据结构·c++·链表·c·顺序表·线性表
TCW112141 分钟前
AI底层系列:用C++实现线性代数的公式推导与算法设计-基础篇-5.矩阵方程
人工智能·线性代数·算法
叫我:松哥43 分钟前
基于机器学习和flask的体育健身风险智能分析系统,系统集成DeepSeek、聚类算法、分类算法等,准确率达90%
人工智能·python·神经网络·算法·机器学习·flask·聚类
wabs6661 小时前
关于动态规划【0-1背包思想在实际问题中是怎么转化的?】
算法·动态规划
阿文的代码库1 小时前
欧拉回路与欧拉路径的算法流程演示
算法