蓝桥杯例题三

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

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

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

相关文章

Couchbase UI: Dashboard

以下是 Couchbase UI Dashboard 页面详细介绍&#xff0c;包括页面布局和功能说明&#xff0c;帮助你更好地理解和使用。 1. 首页&#xff08;Overview&#xff09; 功能&#xff1a;提供集群的整体健康状态和性能摘要 集群状态 节点健康状况&#xff1a;绿色&#xff08;正…

【WebRTC - STUN/TURN服务 - COTURN配置】

在WebRTC中&#xff0c;对于通信的两端不在同一个局域网的情况下&#xff0c;通信两端往往无法P2P直接连接&#xff0c;需要一个TURN中继服务&#xff0c;而中继服务可以选用 COTURN 构建。 注&#xff1a;COTURN 是一个开源的 TURN&#xff08;Traversal Using Relays around…

基于OSAL的嵌入式裸机事件驱动框架——整体架构调度机制

参考B站up主【架构分析】嵌入式祼机事件驱动框架 感谢大佬分享 任务ID &#xff1a; TASK_XXX TASK_XXX 在系统中每个任务的ID是唯一的&#xff0c;范围是 0 to 0xFFFE&#xff0c;0xFFFF保留为SYS_TSK_INIT。 同时任务ID的大小也充当任务调度的优先级&#xff0c;ID越大&#…

【测试】UI自动化测试

长期更新&#xff0c;建议关注收藏点赞&#xff01; 目录 概论WEB环境搭建Selenium元素定位 APPAppium 概论 user interface UI 使用工具和代码执行用例。 什么样的项目需要自动化&#xff1f; 需要回归测试、自动化的功能模块需求变更不频繁、项目周期长&#xff08;功能测试…

【随手笔记】FFT资料整理

&#xff08;一&#xff09;结果验证 函数波形示例1 #define Fs 44800 #define NPT 256 void InitBufInArray() {int i 0;float fx 0;for(i0; i<NPT; i){// fx 1500 * sin(2*PI * i * 350.0 / Fs) // 2700 * sin(2*PI * i * 8400.0 / Fs) // 4000 * sin(2*P…

Airflow:Airflow子流程应用实践

Apache Airflow是一个强大的开源平台&#xff0c;用于以编程方式编写、调度和监控工作流。它的一个强大功能是使用子DAG&#xff08;子有向无环图&#xff09;创建复杂工作流的能力&#xff0c;子DAG本质上是在父DAG中更小的嵌套DAG。在这篇博文中&#xff0c;我们将深入探讨su…

狗狗能吃萝卜吗?

各位铲屎官们&#xff0c;今天咱们来聊聊一个超实用的话题&#xff1a;狗狗能吃萝卜吗&#xff1f;很多新手铲屎官可能会觉得萝卜营养丰富&#xff0c;想给狗狗也尝尝鲜&#xff0c;但其实这里面大有讲究&#xff01; 狗狗可以吃萝卜&#xff0c;但要注意方法 首先&#xff0c…

Excel制作合同到期自动提醒!

大家好&#xff0c;我是小鱼。 今天分享一下如何利用Excel制作合同到期提醒表&#xff0c;实现Excel表格自动计算合同到期日和天数&#xff0c;根据合同状态和到期天数自动填充颜色提醒&#xff0c;超实用。先看一下效果&#xff0c;已经到期的合同会自动被填充为红色&#xf…

Python Flask教程

一、前言 Flask是一个用Python编写的轻量级的Web应用框架。 Flask基于WSGI&#xff08;Web Server Gateway Interface&#xff09;和 Jinja2 模板引擎&#xff0c;旨在帮助开发者快速、简便地创建 Web 应用。 Flask 被称为"微框架"&#xff0c;因为它使用简单的核…

【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】1.10 文本数据炼金术:从CSV到结构化数组

1.10 《文本数据炼金术&#xff1a;从CSV到结构化数组》 目录 #mermaid-svg-TNkACjzvaSXnULaB {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-TNkACjzvaSXnULaB .error-icon{fill:#552222;}#mermaid-svg-TNkACjzva…

Linux进程概念:【环境变量】【程序地址空间】

目录 一.环境变量 1.1基本概念 1.2命令行参数 1.3一个例子&#xff0c;一个环境变量 1.4环境变量的组织方式 1.5查看环境变量的方法 ​编辑 1.6从存储的角度理解环境变量 1.7环境变量最开始是从系统的配置文件里来的 1.8认识更多的环境变量 HOME HISTSIZE HOSTNANE…

医疗集群系统中基于超融合数据库架构的应用与前景探析

一、引言 1.1 研究背景与意义 随着医疗信息化的飞速发展,医疗数据呈爆炸式增长。从日常诊疗记录、患者病历,到各类医疗影像、检查检验数据等,海量信息不断涌现。据统计,医疗数据的年增长率高达 30% 以上 ,2025 年,全球医疗数据量将达到 2314 艾字节(EB)。如此庞大的数…

【leetcode100】从前序与中序遍历序列构造二叉树

1、题目描述 给定两个整数数组 preorder 和 inorder &#xff0c;其中 preorder 是二叉树的先序遍历&#xff0c; inorder 是同一棵树的中序遍历&#xff0c;请构造二叉树并返回其根节点。 示例 1: 输入: preorder [3,9,20,15,7], inorder [9,3,15,20,7] 输出: [3,9,20,nul…

【CSS入门学习】Flex布局设置div水平、垂直分布与居中

水平平均分布 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><style>…

【ARM】解决MDK在打开工程的时候提示CMSIS的版本不对问题

1、 文档目标 解决MDK在打开使用Compiler 6的工程的时候&#xff0c;提示CMSIS 的API版本过低的报错。 2、 问题场景 客户在Pack包中打开一个示例工程&#xff0c;打算熟悉一下对应芯片的功能和软件的功能&#xff0c;但是&#xff0c;打开软件后&#xff0c;在构建信息输出框…

PyCharm接入DeepSeek实现AI编程

目录 效果演示 创建API key 在PyCharm中下载CodeGPT插件 配置Continue DeepSeek 是一家专注于人工智能技术研发的公司&#xff0c;致力于开发高性能、低成本的 AI 模型。DeepSeek-V3 是 DeepSeek 公司推出的最新一代 AI 模型。其前身是 DeepSeek-V2.5&#xff0c;经过持续的…

【PyTorch][chapter 29][李宏毅深度学习]Fine-tuning LLM

参考&#xff1a; https://www.youtube.com/watch?veC6Hd1hFvos 目录&#xff1a; 什么是 Fine-tune 为什么需要Fine-tuning 如何进行Fine-tune Fine-tuning- Supervised Fine-tuning 流程 Fine-tuning参数训练的常用方案 LORA 简介 示例代码 一 什么是 Fine-tune …

动手学图神经网络(3):利用图神经网络进行节点分类 从理论到实践

利用图神经网络进行节点分类&#xff1a;从理论到实践 前言 在之前的学习中&#xff0c;大家对图神经网络有了初步的了解。本次教程将深入探讨如何运用图神经网络&#xff08;GNNs&#xff09;来解决节点分类问题。在节点分类任务里&#xff0c;大家往往仅掌握少量节点的真实…

云原生:构建现代化应用的基石

一、什么是云原生&#xff1f; 云原生是一种构建和运行应用程序的方法&#xff0c;旨在充分利用云计算的分布式系统优势&#xff0c;例如弹性伸缩、微服务架构、容器化技术等。云原生应用程序从设计之初就考虑到了云环境的特点&#xff0c;能够更好地适应云平台的动态变化&…

springboot3 集成 knife4j(接口文档)

提示&#xff1a;文章是集成 knife4j&#xff0c;而非 swagger2 或者 swagger3&#xff0c;效果如图 文章目录 前言一、添加依赖二、如何集成1.配置文件2.注解部分1.Tag2.Operation3.Parameter4.Schema 3.使用 总结 前言 提示&#xff1a;&#xff1a;大家在开发阶段&#xff…