前言
💫你好,我是辰chen,一个正在考研途中的sophomore dog😖
💫目前每日一题主要来自于 leetcode,当然也可能来自洛谷或其他刷题平台,每日一题专栏地址:每日一题
💫欢迎大家的关注,我的博客主要关注于考研408以及AIoT的内容
🌟 每日一题我会给出两种代码,C 版以及 Python版,刷题的目的是为了考研的算法题以及机试(或手写代码)
🌟这也是为什么不用C++ 而用 C ,Python版代码是为了提高语言熟练度(以后开发大概率用的是 Python
🌟 坚持打卡!踏踏实实走好每一步
以下的几个专栏是本人比较满意的专栏(大部分专栏仍在持续更新),欢迎大家的关注:
💥ACM-ICPC算法汇总【基础篇】
💥ACM-ICPC算法汇总【提高篇】
💥AIoT(人工智能+物联网)
💥考研
💥CSP认证考试历年题解
👊每日一句:一份耕耘,一份收获。
大家做完可以在评论区打卡留言✒️,形成良好的学习氛围,一起进步!
LeetCode 55. 跳跃游戏
题目描述:
给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。
数组中的每个元素代表你在该位置可以跳跃的最大长度。
判断你是否能够到达最后一个下标。
示例 1:
输入:nums = [2,3,1,1,4] 输出:true 解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。
示例 2:
输入:nums = [3,2,1,0,4] 输出:false 解释:无论怎样,总会到达下标为 3 的位置。但该下标的最大跳跃长度是 0 , 所以永远不可能到达最后一个下标。
提示:
C版AC代码:
bool canJump(int* nums, int numsSize){ int maxlen = 0; for (int i = 0; i < numsSize; i ++ ){ if (i <= maxlen){ maxlen = fmax(maxlen, i + nums[i]); } if (maxlen >= numsSize - 1){ return true; } } return false; }
Python版AC代码:
class Solution: def canJump(self, nums: List[int]) -> bool: n, maxlen = len(nums), 0 for i in range (n): if (i <= maxlen): maxlen = max(maxlen, nums[i] + i) if maxlen >= n - 1: return True return False
LeetCode 45. 跳跃游戏 II
题目描述:
给你一个非负整数数组nums ,你最初位于数组的第一个位置。
数组中的每个元素代表你在该位置可以跳跃的最大长度。
你的目标是使用最少的跳跃次数到达数组的最后一个位置。
假设你总是可以到达数组的最后一个位置。
示例 1:
输入: nums = [2,3,1,1,4] 输出: 2 解释: 跳到最后一个位置的最小跳跃数是 2。 从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。
示例 2:
输入: nums = [2,3,0,1,4] 输出: 2
C版AC代码:
int jump(int* nums, int numsSize){ int step = 0, end = 0, maxlen = 0; for (int i = 0; i < numsSize - 1; i ++ ){ maxlen = fmax(maxlen, nums[i] + i); if (i == end){ step ++; end = maxlen; } } return step; }
C版AC代码(特判):
int jump(int* nums, int numsSize){ int step = 0, end = 0, maxlen = 0; for (int i = 0; i < numsSize; i ++ ){ maxlen = fmax(maxlen, nums[i] + i); if (i == end && end != numsSize - 1){ step ++; end = maxlen; } } return step; }
Python版AC代码:
class Solution: def jump(self, nums: List[int]) -> int: maxlen, end, step = 0, 0, 0 n = len(nums) for i in range(n - 1): maxlen = max(maxlen, nums[i] + i) if i == end: step += 1 end = maxlen return step