LeetCode刷题 -- 45.跳跃游戏 II

题目

C代码

c 复制代码
int jump(int* nums, int numsSize) {
    int i = 0;
	int j = 0;
	int last_i = 0;
	int last_can = 0;
	int max_i = 0;
	int max_can = 0;
	
	int min_jump = 0;
	
	if (numsSize < 2) {
		//注意点1:数组小于两个的时候,只需要跳转0次;
		goto end;
	}
	// 注意点2: 当数组数量大于1个的时候,最小跳才是1;因为都是从nums[0]开始跳;
	min_jump++;
	
	last_can = nums[last_i] + last_i;
	max_can = nums[max_i] + max_i;
	
	for (i = 1; i < numsSize; i++) {
		if ((last_i + nums[last_i]) < i) {
			min_jump++;
			last_i = max_i;
			last_can = max_can;
		} else {
			//nothing to do
		}
		// 注意点3: 需要完成跳动后,再把最后这个值更新进系统,因为如果当前这个为最后的值;
		if ((nums[i] + i) < max_can) {
			//nothing to do
		} else {
			max_can = nums[i] + i;
			max_i = i;
		}
	}
end:
	return min_jump;
}
相关推荐
renhongxia113 分钟前
大模型微调RAG、LORA、强化学习
人工智能·深度学习·算法·语言模型
DdduZe43 分钟前
8.19作业
数据结构·算法
PyHaVolask1 小时前
链表基本运算详解:查找、插入、删除及特殊链表
数据结构·算法·链表
高山上有一只小老虎1 小时前
走方格的方案数
java·算法
吧唧霸1 小时前
golang读写锁和互斥锁的区别
开发语言·算法·golang
1白天的黑夜12 小时前
链表-2.两数相加-力扣(LeetCode)
数据结构·leetcode·链表
花火|2 小时前
算法训练营day55 图论⑤ 并查集理论基础、107. 寻找存在的路径
算法·图论
花火|2 小时前
算法训练营day56 图论⑥ 108. 109.冗余连接系列
算法·图论
上海迪士尼352 小时前
力扣子集问题C++代码
c++·算法·leetcode