蓝桥杯例题四

embedded/2025/1/31 23:16:29/

每个人都有无限潜能,只要你敢于去追求,你就能超越自己,实现梦想。人生的道路上会有困难和挑战,但这些都是成长的机会。不要被过去的失败所束缚,要相信自己的能力,坚持不懈地努力奋斗。成功需要付出汗水和努力,但只要你坚持不懈,就一定会取得成果。无论遇到什么困难和挫折,都要勇敢面对,坚持追求自己的梦想。不要被他人的眼光和评价所左右,你才是最了解自己的人。相信自己,相信追逐梦想的力量,你一定能够创造奇迹。不要害怕失败,失败只是成功的一部分,只要你勇敢迈出第一步,就是在走向成功的道路上迈进了一大步。坚持努力,追求卓越,你就能成为自己想要成为的人。让我们一起超然励志,勇敢追逐自己的梦想!

蓝桥杯官网蓝桥杯大赛 — 全国大学生TMT行业赛事

刷题力扣 (LeetCode) 全球极客挚爱的技术成长平台

目录

题目7:跳跃游戏

背景描述:

输入格式:

输出格式:

样例输入:

样例输出:

解答过程:

Python代码实现及详细注释:

题目8:旋转数组中的最小值

背景描述:

输入格式:

输出格式:

样例输入:

样例输出:

解答过程:

Python代码实现及详细注释:

总结


题目7:跳跃游戏

背景描述:

给定一个非负整数数组 nums,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置能够跳跃的最大长度。判断你是否能够到达最后一个位置。

输入格式:

第一行包含一个整数n (1 <= n <= 10^4),表示数组的长度。 第二行包含n个非负整数,表示每个位置上能跳跃的最大长度。

输出格式:

输出一个字符串 "true""false",表示是否可以从第一个位置跳到最后一个位置。

样例输入:
5
2 3 1 1 4
样例输出:
true
解答过程:

贪心算法 是解决此类问题的有效方法。我们维护一个变量 max_reach 来记录当前能到达的最远位置。遍历数组时,更新 max_reach 并检查当前位置是否在 max_reach 范围内。

步骤:

  1. 初始化:
    • 设置 max_reach 为0,表示当前能到达的最远位置。
  2. 遍历数组:
    • 对于每一个位置 i,如果 i 大于 max_reach,则无法继续前进,返回 false
    • 更新 max_reach 为 i + nums[i] 和 max_reach 的较大值。
  3. 结果:
    • 如果遍历结束且未提前返回 false,则返回 true
Python代码实现及详细注释:
def can_jump(nums):max_reach = 0for i in range(len(nums)):if i > max_reach:return "false"max_reach = max(max_reach, i + nums[i])if max_reach >= len(nums) - 1:return "true"return "false"# 示例输入
nums = [2, 3, 1, 1, 4]# 调用函数并打印结果
print(can_jump(nums))  # 输出: true

题目8:旋转数组中的最小值

背景描述:

假设有一个升序排列的数组,在某个未知点进行了旋转(例如,[0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2])。编写一个函数来查找旋转排序数组中的最小值。

输入格式:

第一行包含一个整数n (1 <= n <= 10^4),表示数组的长度。 第二行包含n个整数,表示旋转后的数组。

输出格式:

输出一个整数,表示旋转排序数组中的最小值。

样例输入:
5
4 5 6 7 0 1 2
样例输出:
0
解答过程:

二分查找算法 是解决此类问题的有效方法。通过比较中间元素与右端点元素,可以有效地缩小搜索范围。

步骤:

  1. 初始化:
    • 设置左右指针 left 和 right 分别指向数组的两端。
  2. 二分查找:
    • 计算中间索引 mid,如果 nums[mid] 小于 nums[right],说明最小值在左半部分或就是 mid;否则,最小值在右半部分。
    • 根据上述条件调整 left 或 right 指针。
  3. 结果:
    • 最终 left 指向的位置即为最小值所在位置。
Python代码实现及详细注释:
def find_min(nums):left, right = 0, len(nums) - 1while left < right:mid = (left + right) // 2# 如果中间元素小于右端点元素,说明最小值在左半部分或就是midif nums[mid] < nums[right]:right = midelse:# 否则,最小值在右半部分left = mid + 1return nums[left]# 示例输入
nums = [4, 5, 6, 7, 0, 1, 2]# 调用函数并打印结果
print(find_min(nums))  # 输出: 0

总结

这两个题目分别涉及了不同的算法思想和技巧:

  • 跳跃游戏 使用了贪心算法来解决问题,适用于处理需要最大化覆盖范围的问题。
  • 旋转数组中的最小值 使用了二分查找技术,这是一种高效的查找算法,特别适合用于已排序但经过某种变换的数组。

http://www.ppmy.cn/embedded/158471.html

相关文章

基于微信小程序的校园二手交易市场的设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…

毕业设计--具有车流量检测功能的智能交通灯设计

摘要&#xff1a; 随着21世纪机动车保有量的持续增加&#xff0c;城市交通拥堵已成为一个日益严重的问题。传统的固定绿灯时长方案导致了大量的时间浪费和交通拥堵。为解决这一问题&#xff0c;本文设计了一款智能交通灯系统&#xff0c;利用车流量检测功能和先进的算法实现了…

Linux MySQL离线安装

一、准备工作 1. 下载MySQL安装包 访问MySQL官方网站&#xff0c;选择适合您Linux系统的MySQL版本进行下载。通常推荐下载Generic Linux (glibc 2.12)版本的.tar.gz压缩包&#xff0c;例如mysql-8.0.33-linux-glibc2.12-x86_64.tar.xz。将下载好的安装包拷贝到Linux服务器的某…

SpringCloudAlibaba 服务保护 Sentinel 项目集成实践

目录 一、简介1.1、服务保护的基本概念1.1.1、服务限流/熔断1.1.2、服务降级1.1.3、服务的雪崩效应1.1.4、服务的隔离的机制 1.2、Sentinel的主要特性1.3、Sentinel整体架构1.4、Sentinel 与 Hystrix 对比 二、Sentinel控制台部署3.1、版本选择和适配3.2、本文使用各组件版本3.…

es数据同步

Logstash 是 Elastic 技术栈中的一个技术&#xff0c;它是一个数据采集引擎&#xff0c;可以从数据库采集数据到 ES 中。可以通过设置 自增 ID 主键 或 更新时间 来控制数据的自动同步&#xff1a; 自增 ID 主键&#xff1a;Logstatsh 会有定时任务&#xff0c;如果发现有主键…

在汇编语言中,ASSUME 是一个用于告诉汇编器如何将段寄存器与特定段名称关联的指令

在汇编语言中&#xff0c;ASSUME 是一个用于告诉汇编器如何将段寄存器与特定段名称关联的指令。它主要用于定义代码段、数据段和栈段等的段寄存器使用方式&#xff0c;帮助编译器生成正确的代码。 具体到 ASSUME DS:DATA, CS:CODE, SS:STACK&#xff0c;这行代码的作用如下&…

deepseek关于蒸馏的通俗讲解

好的&#xff01;我用一个**做奶茶**的比喻来解释「知识蒸馏」&#xff0c;保证通俗易懂&#xff5e; --- ### **第一步&#xff1a;先理解什么是蒸馏技术** 想象你有一杯超级浓的奶茶&#xff08;**大模型**&#xff09;&#xff0c;味道复杂又醇厚&#xff0c;但太浓了喝起…

手撕Diffusion系列 - 第十一期 - lora微调 - 基于Stable Diffusion(代码)

手撕Diffusion系列 - 第十一期 - lora微调 - 基于Stable Diffusion&#xff08;代码&#xff09; 目录 手撕Diffusion系列 - 第十一期 - lora微调 - 基于Stable Diffusion&#xff08;代码&#xff09;Stable Diffusion 原理图Stable Diffusion的原理解释Stable Diffusion 和Di…