最小跳跃次数

青蛙从位置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.

相关推荐
GreenTea2 小时前
深度解读 Anthropic 多智能体报告:更强的模型 ≠ 更好的协调
前端·后端·算法
fqq33 小时前
力扣刷题前置Java语法
算法·leetcode·职场和发展
2501_906565125 小时前
数学之美探究
算法
oier_Asad.Chen5 小时前
【洛谷题解/AcWing题解/OI学习笔记】洛谷P2868【USACO07DEC】Sightseeing Cows G(01分数规划求最大比率)
算法·图论·spfa·二分·负环
leisoo80977 小时前
财报数据怎么排雷本地化Python构建财务异常预警系统
人工智能·python·算法
luj_17689 小时前
塔防牌:策略与卡牌的智慧碰撞
服务器·c语言·开发语言·经验分享·算法
wuyk5559 小时前
3.链表:用指针串联的动态数据结构
c语言·开发语言·数据结构·链表
郝学胜-神的一滴10 小时前
干货版《算法导论》17:二叉树核心原理、遍历逻辑与高阶实操全解
数据结构·c++·python·算法·计算机·编程
爱编程的小新☆10 小时前
【LeetCode】从递归到 Flood Fill:5 道题吃透 DFS 的选择、回溯与标记
java·算法·leetcode·深度优先·回溯·flood fill
Water_Sunzhipeng10 小时前
2024牛客暑期多校训练营1
算法