蓝桥杯例题五

news2025/1/31 12:55:00

无论你面对多大的困难和挑战,都要保持坚定的信念和积极的态度。相信自己的能力和潜力,努力不懈地追求自己的目标和梦想。不要害怕失败,因为失败是成功的垫脚石。相信自己的选择和决策,不要被他人的意见和批评左右。坚持不懈地努力,即使前进的道路艰难,也要勇敢迈出每一步。相信自己的能力,相信自己的梦想,你一定能够创造出属于自己的辉煌。无论遇到什么困难和挫折,都要坚持下去,因为只有坚持才能看到胜利的曙光。相信自己,你是无坚不摧的战士,你是无所不能的人。无论多么艰难,也不要放弃,因为成功就在不远的前方。相信自己的力量,做好准备,迎接挑战。只有不断努力,才能收获更多的幸福与成功。

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

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

目录

题目9:最长递增子序列

背景描述:

输入格式:

输出格式:

样例输入:

样例输出:

解答过程:

Python代码实现及详细注释:

题目10:括号生成

背景描述:

输入格式:

输出格式:

样例输入:

样例输出:

解答过程:

Python代码实现及详细注释:

总结


题目9:最长递增子序列

背景描述:

给定一个未排序的整数数组,找到最长递增子序列(LIS)的长度。最长递增子序列是指在原数组中严格递增的一个子序列,不要求连续。

输入格式:

第一行包含一个整数n (1 <= n <= 10^5),表示数组的长度。 第二行包含n个整数,表示数组元素。

输出格式:

输出一个整数,表示最长递增子序列的长度。

样例输入:

6
10 9 2 5 3 7
样例输出:
4
解答过程:

动态规划结合二分查找 是解决此类问题的有效方法。我们可以使用一个辅助数组 dp 来记录当前已知的最长递增子序列,并通过二分查找来优化更新操作。

步骤:

  1. 初始化:
    • 创建一个空列表 dp,用于存储当前最长递增子序列中的最小尾部值。
  2. 遍历数组:
    • 对于每个元素 num,如果 num 大于 dp 的最后一个元素,则将其添加到 dp 中;否则,使用二分查找找到 dp 中第一个大于等于 num 的位置并替换它。
  3. 结果:
    • 最终 dp 的长度即为最长递增子序列的长度。
Python代码实现及详细注释:
import bisect

def length_of_lis(nums):
    dp = []
    for num in nums:
        # 使用二分查找找到dp中第一个大于等于num的位置
        pos = bisect.bisect_left(dp, num)
        if pos == len(dp):
            dp.append(num)  # 如果num大于dp的所有元素,则追加
        else:
            dp[pos] = num  # 否则替换掉第一个大于等于num的元素
    return len(dp)

# 示例输入
nums = [10, 9, 2, 5, 3, 7]

# 调用函数并打印结果
print(length_of_lis(nums))  # 输出: 4

题目10:括号生成

背景描述:

给出n对括号,编写一个函数来生成所有可能的并且有效的括号组合。

输入格式:

输入一个整数n (1 <= n <= 8),表示生成括号对的数量。

输出格式:

输出所有可能的有效括号组合,每种组合一行。

样例输入:
3
样例输出:
((()))
(()())
(())()
()(())
()()()
解答过程:

回溯算法 是解决此类问题的有效方法。我们可以通过递归构建所有可能的括号组合,并在构建过程中进行有效性检查。

步骤:

  1. 初始化:
    • 设置初始状态为空字符串 current 和计数器 open_count 和 close_count 分别记录当前使用的左括号和右括号数量。
  2. 递归生成括号:
    • 如果当前使用的左括号数量小于n,则可以添加一个左括号。
    • 如果当前使用的右括号数量小于左括号数量,则可以添加一个右括号。
    • 当左右括号数量均达到n时,说明生成了一个有效组合。
  3. 结果:
    • 将所有有效组合存储在一个列表中并返回。
Python代码实现及详细注释:
def generate_parenthesis(n):
    def backtrack(current, open_count, close_count):
        if len(current) == 2 * n:
            result.append(current)
            return
        
        if open_count < n:
            backtrack(current + '(', open_count + 1, close_count)
        
        if close_count < open_count:
            backtrack(current + ')', open_count, close_count + 1)
    
    result = []
    backtrack("", 0, 0)
    return result

# 示例输入
n = 3

# 调用函数并打印结果
for combination in generate_parenthesis(n):
    print(combination)

总结

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

  • 最长递增子序列 使用了动态规划结合二分查找的方法,适用于处理需要寻找最优子结构的问题。
  • 括号生成 使用了回溯算法,这是一种常见的用于生成所有可能解的方法,特别适合用于排列组合问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2286925.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL(高级特性篇) 14 章——MySQL事务日志

事务有4种特性&#xff1a;原子性、一致性、隔离性和持久性 事务的隔离性由锁机制实现事务的原子性、一致性和持久性由事务的redo日志和undo日志来保证&#xff08;1&#xff09;REDO LOG称为重做日志&#xff0c;用来保证事务的持久性&#xff08;2&#xff09;UNDO LOG称为回…

【Block总结】HWD,小波下采样,适用分类、分割、目标检测等任务|即插即用

论文信息 Haar wavelet downsampling (HWD) 是一项针对语义分割的创新模块&#xff0c;旨在通过减少特征图的空间分辨率来提高深度卷积神经网络&#xff08;DCNNs&#xff09;的性能。该论文的主要贡献在于提出了一种新的下采样方法&#xff0c;能够在下采样阶段有效地减少信息…

【解决方案】MuMu模拟器移植系统进度条卡住98%无法打开

之前在Vmware虚拟机里配置了mumu模拟器&#xff0c;现在想要移植到宿主机中 1、虚拟机中的MuMu模拟器12-1是目标系统&#xff0c;对应的目录如下 C:\Program Files\Netease\MuMu Player 12\vms\MuMuPlayer-12.0-1 2、Vmware-虚拟机-设置-选项&#xff0c;启用共享文件夹 3、复…

力扣面试150 快乐数 循环链表找环 链表抽象 哈希

Problem: 202. 快乐数 &#x1f469;‍&#x1f3eb; 参考题解 Code public class Solution {public int squareSum(int n) {int sum 0;while(n > 0){int digit n % 10;sum digit * digit;n / 10;}return sum;}public boolean isHappy(int n) {int slow n, fast squa…

安卓(android)实现注册界面【Android移动开发基础案例教程(第2版)黑马程序员】

一、实验目的&#xff08;如果代码有错漏&#xff0c;可查看源码&#xff09; 1.掌握LinearLayout、RelativeLayout、FrameLayout等布局的综合使用。 2.掌握ImageView、TextView、EditText、CheckBox、Button、RadioGroup、RadioButton、ListView、RecyclerView等控件在项目中的…

SpringSecurity:There is no PasswordEncoder mapped for the id “null“

文章目录 一、情景说明二、分析三、解决 一、情景说明 在整合SpringSecurity功能的时候 我先是去实现认证功能 也就是&#xff0c;去数据库比对用户名和密码 相关的类&#xff1a; UserDetailsServiceImpl implements UserDetailsService 用于SpringSecurity查询数据库 Logi…

微服务入门(go)

微服务入门&#xff08;go&#xff09; 和单体服务对比&#xff1a;里面的服务仅仅用于某个特定的业务 一、领域驱动设计&#xff08;DDD&#xff09; 基本概念 领域和子域 领域&#xff1a;有范围的界限&#xff08;边界&#xff09; 子域&#xff1a;划分的小范围 核心域…

996引擎 - NPC-动态创建NPC

996引擎 - NPC-动态创建NPC 创建脚本服务端脚本客户端脚本添加自定义音效添加音效文件修改配置参考资料有个小问题,创建NPC时没有控制朝向的参数。所以。。。自己考虑怎么找补吧。 多重影分身 创建脚本 服务端脚本 Mir200\Envir\Market_Def\test\test001-3.lua -- NPC八门名…

基于MinIO的对象存储增删改查

MinIO是一个高性能的分布式对象存储服务。Python的minio库可操作MinIO&#xff0c;包括创建/列出存储桶、上传/下载/删除文件及列出文件。 查看帮助信息 minio.exe --help minio.exe server --help …

观察者模式和订阅发布模式的关系

有人把观察者模式等同于发布订阅模式&#xff0c;也有人认为这两种模式存在差异&#xff0c;本质上就是调度的方法不同。 发布订阅模式: 观察者模式: 相比较&#xff0c;发布订阅将发布者和观察者之间解耦。&#xff08;发布订阅有调度中心处理&#xff09;

(2025 年最新)MacOS Redis Desktop Manager中文版下载,附详细图文

MacOS Redis Desktop Manager中文版下载 大家好&#xff0c;今天给大家带来一款非常实用的 Redis 可视化工具——Redis Desktop Manager&#xff08;简称 RDM&#xff09;。相信很多开发者都用过 Redis 数据库&#xff0c;但如果你想要更高效、更方便地管理 Redis 数据&#x…

Baklib引领内容管理平台新时代优化创作流程与团队协作

内容概要 在迅速变化的数字化时代&#xff0c;内容管理平台已成为各种行业中不可或缺的工具。通过系统化的管理&#xff0c;用户能够有效地组织、存储和共享信息&#xff0c;从而提升工作效率和创意表达。Baklib作为一款新兴的内容管理平台&#xff0c;以其独特的优势和创新功…

Java实现.env文件读取敏感数据

文章目录 1.common-env-starter模块1.目录结构2.DotenvEnvironmentPostProcessor.java 在${xxx}解析之前执行&#xff0c;提前读取配置3.EnvProperties.java 这里的path只是为了代码提示4.EnvAutoConfiguration.java Env模块自动配置类5.spring.factories 自动配置和注册Enviro…

房屋租赁系统在数字化时代中如何重塑租赁服务与提升市场竞争力

内容概要 在当今快速发展的数字化时代&#xff0c;房屋租赁系统的作用愈发重要。随着市场需求的变化&#xff0c;租赁服务正面临着新的挑战与机遇。房屋租赁系统不仅仅是一个简单的管理工具&#xff0c;更是一个能够提升用户体验和市场竞争力的重要平台。其核心功能包括合同管…

C++ ——— 学习并使用 priority_queue 类

目录 何为 priority_queue 类 学习并使用 priority_queue 类 实例化一个 priority_queue 类对象 插入数据 遍历堆&#xff08;默认是大堆&#xff09; 通过改变实例化的模板参数修改为小堆 何为 priority_queue 类 priority_queue 类为 优先级队列&#xff0c;其本质就是…

DeepSeek 模型全览:探索不同类别的模型

DeepSeek 是近年来备受关注的 AI 研究团队&#xff0c;推出了一系列先进的深度学习模型&#xff0c;涵盖了大语言模型&#xff08;LLM&#xff09;、代码生成模型、多模态模型等多个领域。本文将大概介绍 DeepSeek 旗下的不同类别的模型&#xff0c;帮助你更好地理解它们的特点…

Three.js实现3D动态心形与粒子背景的数学与代码映射解析

一、效果概述 本文通过Three.js构建了一个具有科技感的3D场景&#xff0c;主要包含两大视觉元素&#xff1a; 动态心形模型&#xff1a;采用数学函数生成基础形状&#xff0c;通过顶点操作实现表面弧度。星空粒子背景&#xff1a;随机分布的粒子群组形成空间层次感。复合动画…

linux asio网络编程理论及实现

最近在B站看了恋恋风辰大佬的asio网络编程&#xff0c;质量非常高。在本章中将对ASIO异步网络编程的整体及一些实现细节进行完整的梳理&#xff0c;用于复习与分享。大佬的博客&#xff1a;恋恋风辰官方博客 Preactor/Reactor模式 在网络编程中&#xff0c;通常根据事件处理的触…

多目标优化策略之一:非支配排序

多目标优化策略中的非支配排序是一种关键的技术,它主要用于解决多目标优化问题中解的选择和排序问题,确定解集中的非支配解(也称为Pareto解)。 关于什么是多目标优化问题,可以查看我的文章:改进候鸟优化算法之五:基于多目标优化的候鸟优化算法(MBO-MO)-CSDN博客 多目…

电子电气架构 --- 在智能座舱基础上定义人机交互

我是穿拖鞋的汉子&#xff0c;魔都中坚持长期主义的汽车电子工程师。 老规矩&#xff0c;分享一段喜欢的文字&#xff0c;避免自己成为高知识低文化的工程师&#xff1a; 简单&#xff0c;单纯&#xff0c;喜欢独处&#xff0c;独来独往&#xff0c;不易合同频过着接地气的生活…