蓝桥杯例题三

无论前方困难如何重重,我们都要坚定信念,勇往直前。面对挑战和困境,不要退缩,不要放弃,要坚持走下去。当我们感到疲惫时,要告诉自己:“我可以,我一定行!”相信自己的实力和潜力,相信自己能够克服一切困难,创造出更好的未来。在追逐梦想的道路上,我们要保持积极向上的态度,勇敢面对失败和挫折,不断学习和成长。只有付出努力和坚持不懈,才能实现自己的目标,成就自己的人生。让我们怀揣着梦想,勇往直前,创造出属于自己的辉煌!无论风雨多么艰难,只要心中有梦,就能战胜一切困难,迎接属于自己的辉煌人生!

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

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

目录

题目5:最大矩形面积(柱状图中的最大矩形)

背景描述:

输入格式:

输出格式:

样例输入:

样例输出:

解答过程:

Python代码实现及详细注释:

题目6:最长无重复字符的子串

背景描述:

输入格式:

输出格式:

样例输入:

样例输出:

解答过程:

Python代码实现及详细注释:

总结


题目5:最大矩形面积(柱状图中的最大矩形)

背景描述:

给定一组非负整数表示柱状图的高度,每个柱子的宽度为1。计算柱状图中能够勾勒出来的矩形的最大面积。

输入格式:

第一行包含一个整数n (1 <= n <= 10^5),表示柱状图的高度数组长度。 第二行包含n个非负整数,表示每个柱子的高度。

输出格式:

输出一个整数,表示柱状图中能够勾勒出来的矩形的最大面积。

样例输入:
6
2 1 5 6 2 3
样例输出:
10
解答过程:

单调栈算法 是解决此类问题的有效方法。我们使用一个栈来存储柱子的索引,并确保栈内的柱子高度是递增的。通过遍历柱子并维护栈的状态,我们可以高效地计算出最大矩形面积。

步骤:

  1. 初始化:
    • 创建一个空栈,并在高度数组两端各添加一个高度为0的虚拟柱子以简化边界处理。
  2. 遍历柱子:
    • 对于每一个柱子,如果当前柱子高度大于栈顶柱子高度,则将其索引压入栈;否则,不断弹出栈顶元素并计算以该柱子为高的矩形面积,直到满足条件为止。
  3. 结果:
    • 最终答案是在遍历过程中记录的最大矩形面积。
Python代码实现及详细注释:
def largest_rectangle_area(heights):# 在heights两端添加高度为0的虚拟柱子heights = [0] + heights + [0]stack = []max_area = 0for i in range(len(heights)):# 当当前柱子高度小于栈顶柱子高度时,计算以栈顶柱子为高的矩形面积while stack and heights[i] < heights[stack[-1]]:h = heights[stack.pop()]# 计算宽度时,左边界是新的栈顶,右边界是当前柱子w = i - stack[-1] - 1max_area = max(max_area, h * w)# 将当前柱子索引压入栈stack.append(i)return max_area# 示例输入
heights = [2, 1, 5, 6, 2, 3]# 调用函数并打印结果
print(largest_rectangle_area(heights))  # 输出: 10

题目6:最长无重复字符的子串

背景描述:

给定一个字符串,请找出其中不含有重复字符的最长子串的长度。

输入格式:

输入一行包含一个字符串s,仅包含小写字母,长度不超过10^5。

输出格式:

输出一个整数,表示不含重复字符的最长子串的长度。

样例输入:
abcabcbb
样例输出:
3
解答过程:

滑动窗口算法 是解决此类问题的有效方法。我们使用两个指针 leftright 来表示当前窗口的左右边界,并使用一个哈希表来记录字符出现的位置。通过移动右指针扩展窗口,并根据需要调整左指针缩小窗口,可以找到最长的无重复字符子串。

步骤:

  1. 初始化:
    • 设置两个指针 left 和 right,以及一个哈希表 char_index_map 来记录字符及其最新出现的位置。
  2. 扩展窗口:
    • 移动右指针 right 扩展窗口,并检查新加入的字符是否已经在窗口内。
    • 如果字符已经存在,则移动左指针 left 直到窗口内不再包含重复字符。
  3. 更新结果:
    • 每次扩展窗口后,更新最长无重复字符子串的长度。
Python代码实现及详细注释:
def length_of_longest_substring(s):char_index_map = {}left = 0max_length = 0for right in range(len(s)):if s[right] in char_index_map:# 如果当前字符已在窗口内,更新左指针位置left = max(left, char_index_map[s[right]] + 1)# 更新当前字符的最新位置char_index_map[s[right]] = right# 更新最大长度max_length = max(max_length, right - left + 1)return max_length# 示例输入
s = "abcabcbb"# 调用函数并打印结果
print(length_of_longest_substring(s))  # 输出: 3

总结

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

  • 最大矩形面积 使用了单调栈来高效解决问题,适用于处理柱状图或直方图相关的问题。
  • 最长无重复字符的子串 使用了滑动窗口技术,这是一种常见的用于处理字符串问题的方法,特别是在寻找特定模式的子串时非常有用。

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

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

相关文章

docker Ubuntu实战

目录 Ubuntu系统环境说明 一、如何安装docker 二、发布.netcore应用到docker中 三、查看docker信息 四、保存linux服务器的镜像、下载镜像 其他 1.Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while wa…

神经网络|(四)概率论基础知识-古典概型

【1】引言 前序学习了线性回归的基础知识&#xff0c;了解到最小二乘法可以做线性回归分析&#xff0c;但为何最小二乘法如此准确&#xff0c;这需要从概率论的角度给出依据。 因此从本文起&#xff0c;需要花一段时间来回顾概率论的基础知识。 【2】古典概型 古典概型是我…

php代码审计2 piwigo CMS in_array()函数漏洞

php代码审计2 piwigo CMS in_array()函数漏洞 一、目的 本次学习目的是了解in_array()函数和对项目piwigo中关于in_array()函数存在漏洞的一个审计并利用漏洞获得管理员帐号。 二、in_array函数学习 in_array() 函数搜索数组中是否存在指定的值。 in_array($search,$array…

mybatis中<select>标签resultType跟resultMap 属性的作用和区别

select 标签的 resultType 和 resultMap 属性都用于指定查询结果应该如何被映射到 Java 对象上 resultType 属性用于指定 MyBatis 应该将每一行结果映射到的 Java 类型。 当查询结果是一个简单的数据类型&#xff08;如 int, String&#xff09;、一个 JavaBean&#xff08;P…

适用于 Windows 的 11 款最佳照片恢复软件

我们确信找到这篇文章本身就是一种解脱感&#xff0c;因为您删除的照片具有很大的情感价值&#xff0c;必须使用好的照片恢复软件将它们恢复回来。无论您的照片是否已从计算机、存储卡、硬盘驱动器、SD 卡还是数码相机中删除&#xff0c;您都可以在 Windows 10 上恢复已删除的照…

速通 AI+Web3 开发技能: 免费课程+前沿洞察

AI 正以前所未有的速度重塑各行各业&#xff0c;从生成式模型到大规模数据处理&#xff0c;AI 逐渐成为核心驱动力。与此同时&#xff0c;Web3 去中心化技术也在重新定义信任、交易和协作方式。当这两大前沿技术相遇&#xff0c;AI Web3 的融合已不再是理论&#xff0c;而是未…

LeetCode - Google 大模型校招10题 第1天 Attention 汇总 (3题)

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/145368666 GroupQueryAttention(分组查询注意力机制) 和 KVCache(键值缓存) 是大语言模型中的常见架构&#xff0c;GroupQueryAttention 是注意力…

Linux之Tcp粘包笔记

目录 一.网络传输四层模型 二.数据传输中数据包传输的两个限制概念 三.数据传输的中粘包问题 四.数据组装的原因 Nagle算法原理: 五.关闭Nagle优化处理粘包问题吗&#xff1f; 六.粘包处理方法 a.设置消息边界&#xff1a; b.定义消息长度&#xff1a; 七.UDP是否会出…

websocket实现

由于安卓资源管理器展示的路径不尽相同,各种软件保存文件的位置也不一定一样.对于普通用户上传文件时,查找文件可能是一个麻烦的事情.后来想到了一个办法,使用pc端进行辅助上传. 文章目录 实现思路1.0 实现定义web与客户端通信数据类型和数据格式web端websocket实现web端对客户…

什么是反向海淘?如何入局反向海淘?

什么是反向海淘&#xff1f; 简单来说&#xff0c;反向海淘就是海外消费者通过国内的电商平台或独立站买入中国商品&#xff0c;然后通过跨境物流送到海外。以前是我们在国内买国外的东西&#xff0c;现在反过来&#xff0c;老外开始疯狂种草咱们的国货啦&#xff01; 为什么反…

leetcode刷题记录(一百)——121. 买卖股票的最佳时机

&#xff08;一&#xff09;问题描述 121. 买卖股票的最佳时机 - 力扣&#xff08;LeetCode&#xff09;121. 买卖股票的最佳时机 - 给定一个数组 prices &#xff0c;它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票&#xff0c;并…

荔枝派LicheePi Zero V3S芯片图形系统开发详解[持续更新]

一、图形子系统 一般移动Linux设备实现图像显示的方案无非两种&#xff1a; 一种是使用OpenGL ES 另外一种就是使用FrameBuffer 使用OpenGL有个前提就是这个芯片是需要有GPU的&#xff0c;不然是没有意义的。 查看芯片系统框图&#xff0c;注意到V3S这款芯片是不支持GPU的…

AI刷题-最小化团建熟悉程度和

目录 问题描述 输入格式 输出格式 解题思路&#xff1a; 状态表示 状态转移 动态规划数组 预处理 实现&#xff1a; 1.初始化&#xff1a; 2.动态规划部分&#xff1a; &#xff08;1&#xff09;对于已分组状态的&#xff0c;跳过&#xff1a; &#xff08;2&…

使用Python和Qt6创建GUI应用程序---GUI的一个非常简短的历史

GUI的一个非常简短的历史 图形用户界面有着悠久而可敬的历史&#xff0c;可以追溯到20世纪60年代。斯坦福大学的NLS&#xff08;在线系统&#xff09;引入了鼠标和Windows概念于1968年首次公开展示。接下来是施乐PARC的Smalltalk系统GUI 1973&#xff0c;这是最现代的基础通用g…

DroneXtract:一款针对无人机的网络安全数字取证工具

关于DroneXtract DroneXtract是一款使用 Golang 开发的适用于DJI无人机的综合数字取证套件&#xff0c;该工具可用于分析无人机传感器值和遥测数据、可视化无人机飞行地图、审计威胁活动以及提取多种文件格式中的相关数据。 功能介绍 DroneXtract 具有四个用于无人机取证和审…

day7手机拍照装备

对焦对不上&#xff1a;1、光太暗&#xff1b;2、离太近&#xff1b;3、颜色太单一没有区分点 滤镜可以后期P 渐变灰滤镜&#xff1a;均衡色彩&#xff0c;暗的地方亮一些&#xff0c;亮的地方暗一些 中灰滤镜&#xff1a;减少光差 手机支架&#xff1a;最基本70cm即可 手…

【从零到一,C++项目实战】CineShare++(基于C++的视频点播系统)

&#x1f308;个人主页&#xff1a; 南桥几晴秋 &#x1f308;C专栏&#xff1a; 南桥谈C &#x1f308;C语言专栏&#xff1a; C语言学习系列 &#x1f308;Linux学习专栏&#xff1a; 南桥谈Linux &#x1f308;数据结构学习专栏&#xff1a; 数据结构杂谈 &#x1f308;数据…

RabbitMQ 架构分析

文章目录 前言一、RabbitMQ架构分析1、Broker2、Vhost3、Producer4、Messages5、Connections6、Channel7、Exchange7、Queue8、Consumer 二、消息路由机制1、Direct Exchange2、Topic Exchange3、Fanout Exchange4、Headers Exchange5、notice5.1、备用交换机&#xff08;Alter…

九、CSS工程化方案

一、PostCSS介绍 二、PostCSS插件的使用 项目安装 - npm install postcss-cli 全局安装 - npm install postcss-cli -g postcss-cli地址&#xff1a;GitHub - postcss/postcss-cli: CLI for postcss postcss地址&#xff1a;GitHub - postcss/postcss: Transforming styles…

SpringBoot开发(二)Spring Boot项目构建、Bootstrap基础知识

1. Spring Boot项目构建 1.1. 简介 基于官方网站https://start.spring.io进行项目的创建. 1.1.1. 简介 Spring Boot是基于Spring4框架开发的全新框架&#xff0c;设计目的是简化搭建及开发过程&#xff0c;并不是对Spring功能上的增强&#xff0c;而是提供了一种快速使用Spr…