最小跳跃次数

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

答案:

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.

相关推荐
NAGNIP11 小时前
轻松搞懂全连接神经网络结构!
人工智能·算法·面试
NAGNIP11 小时前
一文搞懂激活函数!
算法·面试
董董灿是个攻城狮11 小时前
AI 视觉连载7:传统 CV 之高斯滤波实战
算法
爱理财的程序媛17 小时前
openclaw 盯盘实践
算法
MobotStone21 小时前
Google发布Nano Banana 2:更快更便宜,图片生成能力全面升级
算法
颜酱1 天前
队列练习系列:从基础到进阶的完整实现
javascript·后端·算法
用户5757303346241 天前
两数之和:从 JSON 对象到 Map,大厂面试官到底在考察什么?
算法
程序猿追1 天前
“马”上行动:手把手教你基于灵珠平台打造春节“全能数字管家”
算法
ZPC82102 天前
docker 镜像备份
人工智能·算法·fpga开发·机器人