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;
}
相关推荐
paeamecium1 小时前
【PAT甲级真题】- Rational Sum (20)
数据结构·c++·python·算法·pat考试·pat
拳里剑气10 小时前
C++算法:BFS解决FloodFill算法
c++·算法·bfs·宽度优先
wanderist.12 小时前
Lambda表达式在算法竞赛中的应用
java·开发语言·算法
稚南城才子,乌衣巷风流12 小时前
支配树(Dominator Tree)详解:概念、算法与应用
算法
稚南城才子,乌衣巷风流13 小时前
动态开点:原理、实现与应用场景
数据结构·算法
yyds_yyd_1008613 小时前
1464. 数组中两元素的最大乘积(2026.07.27)
数据结构·c++·算法·leetcode
KaMeidebaby14 小时前
卡梅德生物技术快报 | 核酸适配体文库测序:核酸适配体文库测序的技术原理、实验流程与数据解析
前端·网络·数据库·人工智能·算法
geovindu15 小时前
CSharp: Breadth First Search Algorithm and Depth First Search Algorithm
开发语言·后端·算法·c#·.net·搜索算法
ekkoalex16 小时前
训练框架以及算法实现的框架
算法