蓝桥杯例题三

server/2025/2/1 19:11:23/

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

蓝桥杯官网蓝桥杯大赛 — 全国大学生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.ppmy.cn/server/164138.html

相关文章

android 的aab包

什么是 AAB (Android App Bundle)&#xff1f; AAB (Android App Bundle) 是 Google 推出的新一代 Android 应用发布格式&#xff0c;用于取代传统的 APK 格式。AAB 的全称是 Android App Bundle&#xff0c;扩展名为 .aab&#xff0c;它并不是直接可以安装的文件&#xff0c;…

Android-okhttp详解

目录 一&#xff0c;介绍 二&#xff0c;简单使用 三&#xff0c;流程分析 四&#xff0c;分发器 五&#xff0c;拦截器 5.1 重试及重定向拦截器 5.1.1 重试 5.1.2 重定向 5.2 桥接拦截器 5.3 缓存拦截器 5.4 连接拦截器 5.5 请求服务器拦截器 一&#xff0c;介绍 OkHttp是当下…

《DeepSeek 网页/API 性能异常(DeepSeek Web/API Degraded Performance):网络安全日志》

DeepSeek 网页/API 性能异常&#xff08;DeepSeek Web/API Degraded Performance&#xff09;订阅 已识别 - 已识别问题&#xff0c;并且正在实施修复。 1月 29&#xff0c; 2025 - 20&#xff1a;57 CST 更新 - 我们将继续监控任何其他问题。 1月 28&#xff0c; 2025 - 22&am…

continuous batching、chunked-prefill相关概念

batching VS. continuous batching batching是所有requests的output都生成完毕之后&#xff0c;才能开始处理下一个batch。一般要做input padding&#xff0c;要等待凑够batch才运行&#xff08;也有超时bar&#xff09;。 continuous batching是每完成1个request&#xff0c;就…

栅格数据金字塔层级的地理变换信息

1. 引言 笔者在实现栅格数据的可视化的时候遇到了一个问题&#xff0c;计算栅格数据金字塔层级的地理变换信息错误导致可视化的时候存在微小的误差。地理变换信息指的就是栅格数据的地理坐标起点和分辨率&#xff0c;笔者在另外一篇文章中《GDAL读取的坐标起点在像素左上角还是…

论文阅读(十):用可分解图模型模拟连锁不平衡

1.论文链接&#xff1a;Modeling Linkage Disequilibrium with Decomposable Graphical Models 摘要&#xff1a; 本章介绍了使用可分解的图形模型&#xff08;DGMs&#xff09;表示遗传数据&#xff0c;或连锁不平衡&#xff08;LD&#xff09;&#xff0c;各种下游应用程序之…

Elasticsearch:如何搜索含有复合词的语言

作者&#xff1a;来自 Elastic Peter Straer 复合词在文本分析和标记过程中给搜索引擎带来挑战&#xff0c;因为它们会掩盖词语成分之间的有意义的联系。连字分解器标记过滤器等工具可以通过解构复合词来帮助解决这些问题。 德语以其长复合词而闻名&#xff1a;Rindfleischetik…

玩转大语言模型——使用langchain和Ollama本地部署大语言模型

系列文章目录 玩转大语言模型——使用langchain和Ollama本地部署大语言模型 玩转大语言模型——ollama导入huggingface下载的模型 玩转大语言模型——langchain调用ollama视觉多模态语言模型 玩转大语言模型——使用GraphRAGOllama构建知识图谱 玩转大语言模型——完美解决Gra…