当前位置: 首页 > news >正文

品牌网站建设有哪些功能海珠建网站的公司

品牌网站建设有哪些功能,海珠建网站的公司,绍兴seo排名,门户网站建设与运行情况良好单调栈 单调栈是一个栈,里面的元素的大小按照它们所在栈的位置,满足一定的单调性; 性质: 单调递减栈能找到左边第一个比当前元素大的元素;单调递增栈能找到左边第一个比当前元素小的元素; 应用场景 一般用…

单调栈

  • 单调栈是一个栈,里面的元素的大小按照它们所在栈的位置,满足一定的单调性;

  • 性质:

    • 单调递减栈能找到左边第一个比当前元素大的元素
    • 单调递增栈能找到左边第一个比当前元素小的元素
  • 应用场景

    • 一般用于解决第一个大于XXX或者第一个小于XXX这一类的题目
  • 优点:实践复杂度是线性的,每个元素只遍历一次
    在这里插入图片描述

  • 单调递减栈,每次都能找到左边第一个比它大的数

  • 单调递增栈,每次都能找到左边第一个比它小的数

在这里插入图片描述

84. 柱状图中最大的矩形

https://leetcode.cn/problems/largest-rectangle-in-histogram/description/
在这里插入图片描述

解法一:暴力解法

依次遍历柱形的高度,对于每一个高度分别向两边扩散,求出当前高度为矩形的最大宽度

  • 向左遍历,看最多能向左延伸多长,找到大于等于当前柱形高度的最左边元素的下标;
  • 向右遍历,看最多能向右延伸多长,找到大于等于当前柱形高度的最右边元素的下标;
  • 计算当前高度对应的最大面积,与历史最大值进行比较并更新。

该解法在用例数量过多时,容易超出实时间限制

class Solution:def largestRectangleArea(self, heights: List[int]) -> int:size = len(heights)res = 0for i in range(size):# 找左边最后一个大于等于heights[i]的下标left = icur_height = heights[i]while left > 0 and heights[left-1] >= cur_height:left -= 1# 找右边最后一个大于等于heights[i]的下标right = iwhile right < size-1 and heights[right + 1] >= cur_height:right += 1max_width = right - left + 1res = max(res, max_width * cur_height)return res

解法二:单调栈

  • 获取每根柱子左边第一个比它低的柱子坐标,(单调递增栈
  • 获取每根柱子右边第一个比它低的柱子下标,(倒序来做,就是左边第一个比它低的柱子
  • 遍历每根柱子求最大面积
  • 哨兵技巧:两边各添加一个虚拟柱子
class Solution:def largestRectangleArea(self, heights: List[int]) -> int:stack = []left = [0 for _ in range(len(heights))]right = [0 for _ in range(len(heights))]res = 0# 获取每根柱子左边第一个比它低的柱子下标for i in range(len(heights)):while stack and heights[stack[-1]] >= heights[i]:stack.pop()if not stack:left[i] = -1else:left[i] = stack[-1]stack.append(i)stack = []# 获取每根柱子右边第一个比它低的柱子下标for j in range(len(heights) - 1, -1, -1):while stack and heights[stack[-1]] >= heights[j]:stack.pop()if not stack:right[j] = len(heights)else:right[j] = stack[-1]stack.append(j)# 求最大面积for i in range(len(heights)):res = max(res, heights[i] * (right[i] - left[i] - 1))return res
  • 单调栈图示:(获取每根柱子右边第一个比它低的柱子下标,则需要倒序来做)
    在这里插入图片描述

附录基础

python数据结构与算法理论基础(专栏)

数据结构与算法(python)http://t.csdnimg.cn/Gb6MN

程序 = 数据结构 + 算法;而且在面试过程中这些是必考,必问的内容。内容大纲:基础数据结构(树、链表、栈、队列等)、常见算法(排序算法、递归算法等)。

专栏是基于python的基础知识,是很好的入门学习资料。帮助大家快速理解这些数据结构和常见算法的概念,同时结合力扣题目,也能更好的掌握这些知识,达到在面试中游刃有余的效果。

python基础语法

python基础精讲 http://t.csdnimg.cn/HdKdi

本专栏主要针对python基础语法,帮助学习者快速接触并掌握python大部分最重要的语法特征。
1、基本数据类型和变量
2、分支结构与循环结构
3、函数与异常处理
4、类与模块
5、文件读写

通过本专栏可以快速掌握python的基础语法。

http://www.yayakq.cn/news/783602/

相关文章:

  • 企业建筑网站网页美工设计ppt
  • 网站如何增加增删查改怎么做深圳建立网站公司网站
  • 百度网站排名规则互联网营销成功案例
  • 医药网站前置审批临清网站建设临清
  • 汕头网站建设公司天津平台网站建设公司
  • 长沙工程建设管理中心网站广州市住房与城乡建设厅网站
  • 温州外贸网站制作网站建设 创业
  • 沈阳网站建设的价格怎么把网址做成网页链接
  • 网站建设的步骤过程ppt淄博网站建设公司哪家好
  • 葫芦岛公司做网站电商网站建设哪家公司好
  • 北京迈程网络网站建设公司如何自己建网站服务器
  • 开一家网络公司做网站前景如何高端的扬中网站建设
  • 自己做网站要多少钱大连建设网水电费查询官网
  • 淘宝客怎么在网站做推广网站建设代码介绍
  • 南沙区交通和建设局网站婚纱网站设计首页
  • 学前端要逛那些网站门户型网站建设方案
  • 大兴快速网站建设哪家好wordpress 积分集成
  • 厂 网站 南宁阿里云智能建站
  • 网站建设过程论文软件研发项目管理系统
  • 网站开发技术知识住房和城乡建设部的网站
  • 保山公司做网站广州seo优化外包公司
  • 自己做的网站被举报违反广告法你去湖北省住房城乡建设厅网站查
  • 看网站是不是WP做的wordpress保存php失败
  • 购物网站优化方案如何快速做一个网站
  • 辽阳太子河网站建设成都招聘网站建设
  • 如何制作导航网站上海招聘网最新招聘2023
  • 电商网站建设与运维需要的软件淘宝的17种免费推广方法
  • 温州网络有限公司无锡 网站 seo 优化
  • 哔哩哔哩网站建设分析金水郑州网站建设
  • 狮山网站设计熊掌号wordpress