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

制作网站需要学什么软件有哪些网站死链排查

制作网站需要学什么软件有哪些,网站死链排查,网站制作价格上海,群晖做自己的电影网站单调栈(Monotonic Stack)是一种特殊的栈数据结构,其核心特性是栈中的元素始终保持单调递增或单调递减的顺序。它的典型应用场景通常涉及需要快速找到某个元素左侧或右侧第一个比它大(或小)的元素的问题。 单调递减栈 …

单调栈(Monotonic Stack)是一种特殊的栈数据结构,其核心特性是栈中的元素始终保持单调递增或单调递减的顺序。它的典型应用场景通常涉及需要快速找到某个元素左侧或右侧第一个比它大(或小)的元素的问题。

单调递减栈

  • 原理
    依次遍历数组,如果出现栈顶元素小于当前元素,则循环弹出栈顶元素,直到遇栈顶元素大于当前元素,则将当前元素入栈,
  • 应用
    用来快速计算第一个比当前元素大的元素值
    用来当时当前遍历遇到的最大值

单调递增栈

	依次遍历数组,如果出现栈顶元素大于当前元素,则循环弹出栈顶元素,直到遇到栈顶元素小于当前元素,则将当前元素入栈,可以用来快速计算第一个比当前元素小的元素值	

以下是
单调栈的主要应用场景及示例:


1. 下一个更大/更小元素(Next Greater/Smaller Element)

问题描述:给定一个数组,为每个元素找到其右侧(或左侧)第一个比它大(或小)的元素。
示例

  • 题目:496. 下一个更大元素 I
  • 解法:维护一个单调递减栈,遇到比栈顶大的元素时,栈顶元素的下一个更大元素即为当前元素。
def nextGreaterElements(nums):stack = []res = [-1] * len(nums)for i in range(len(nums)):while stack and nums[i] > nums[stack[-1]]:res[stack.pop()] = nums[i]stack.append(i)return res

2. 柱状图中的最大矩形(Largest Rectangle in Histogram)

问题描述:在柱状图中找到面积最大的矩形。
示例

  • 题目:84. 柱状图中的最大矩形
  • 解法:维护单调递增栈,确定每个柱子左右第一个比它矮的柱子边界。
def largestRectangleArea(heights):stack = []heights = [0] + heights + [0]  # 添加哨兵节点res = 0for i in range(len(heights)):while stack and heights[i] < heights[stack[-1]]:h = heights[stack.pop()]w = i - stack[-1] - 1res = max(res, h * w)stack.append(i)return res

3. 接雨水(Trapping Rain Water)

问题描述:计算柱状图中能接多少雨水。
示例

  • 题目:42. 接雨水
  • 解法:单调递减栈,计算凹槽的宽度和高度。
def trap(height):stack = []res = 0for i in range(len(height)):while stack and height[i] > height[stack[-1]]:bottom = height[stack.pop()]if not stack: breakw = i - stack[-1] - 1h = min(height[i], height[stack[-1]]) - bottomres += w * hstack.append(i)return res

4. 滑动窗口最大值(Sliding Window Maximum)

问题描述:给定数组和窗口大小,返回每个窗口中的最大值。
示例

  • 题目:239. 滑动窗口最大值
  • 解法:使用单调递减的双端队列(类似单调栈思想)。
def maxSlidingWindow(nums, k):from collections import dequeq = deque()res = []for i in range(len(nums)):while q and nums[i] > nums[q[-1]]:q.pop()q.append(i)if q[0] == i - k:  # 移除超出窗口的元素q.popleft()if i >= k - 1:res.append(nums[q[0]])return res

5. 其他变种问题

  • 股票跨度问题(901. 股票价格跨度):维护单调递减栈,计算连续小于当前价格的天数。
  • 子数组的最小值之和(907. 子数组的最小值之和):利用单调栈找到每个元素作为最小值的左右边界。

单调栈的核心思想

  1. 单调性选择:根据问题决定递增栈(解决“下一个更小”问题)或递减栈(解决“下一个更大”问题)。
  2. 出栈时机:当新元素破坏单调性时,出栈并处理结果(如计算面积、距离等)。
  3. 边界处理:通常通过添加哨兵节点(如柱状图问题中的首尾0)简化代码逻辑。

通过维护单调性,单调栈能将时间复杂度优化到 O(n),是处理“邻近比较”类问题的高效工具。


文章转载自:

http://EdFvFNjV.ygqjn.cn
http://jMWOQXgK.ygqjn.cn
http://4oL2QNaN.ygqjn.cn
http://BKbWuv7q.ygqjn.cn
http://vyajaZHV.ygqjn.cn
http://8VabwjvI.ygqjn.cn
http://3OcaHwAm.ygqjn.cn
http://9wwFrS5L.ygqjn.cn
http://X1uM0eGM.ygqjn.cn
http://RQVa2q4l.ygqjn.cn
http://7eOaiByf.ygqjn.cn
http://bcnMZrNq.ygqjn.cn
http://pFse5a0P.ygqjn.cn
http://DdYbc52Q.ygqjn.cn
http://SdOyht8A.ygqjn.cn
http://c1go30xt.ygqjn.cn
http://cW9dw2gT.ygqjn.cn
http://zh6Qrteb.ygqjn.cn
http://QfHk5PJj.ygqjn.cn
http://I2iZf1hs.ygqjn.cn
http://VoxrLtZj.ygqjn.cn
http://8q6nDnpZ.ygqjn.cn
http://ZQKW60tZ.ygqjn.cn
http://H2SkeKzs.ygqjn.cn
http://DBFTyE8I.ygqjn.cn
http://Q0PjksZO.ygqjn.cn
http://zgE48zDD.ygqjn.cn
http://4zfKwj4V.ygqjn.cn
http://ItPEcj6b.ygqjn.cn
http://V4nRaOoQ.ygqjn.cn
http://www.dtcms.com/wzjs/734908.html

相关文章:

  • 成都网站关键词推广惠州学院网站建设
  • 做外贸到那个网站有什么建筑网站
  • 性价比高seo网站优化如何获取网站js图片
  • 虹口网站建设公司郑州建设厅官方网站
  • 昆明做网站开发维护的公司天津企业模板建站哪个好
  • 微信可以做网站吗学生自做网站优秀作品
  • 制作网站的软件下载住建部2022年执行的新规范
  • 做一个网站最便宜多少钱产品备案查询官网
  • 网站展示怎么做广东深圳网站建设
  • 网站备案密码怎么找回机械加工怎么找客户
  • 南部 网站 建设建设银行企业银行网站打不开
  • 学术网站建设百度站长平台网站体检
  • 连云港百度总代理优化设计三年级上册答案语文
  • 维力安网站建设公司小学四年级摘抄新闻
  • 博敏网站建设深圳专业建网站
  • 安娜尔返利机器人怎么做网站网站备案中更名
  • wordpress 建站对比网站空间运行挂机宝
  • 自己做网站 有名6怎么把wordpress后台设置成中文
  • 两个网站链接如何做做网站需要的法律知识
  • 做网站设置时间网站建设中html
  • 各种网站名称大全天津网站搭建
  • 中国电力建设集团网站群wordpress用户分组
  • 唐山哪个公司可以制作网站成品网页大全下载
  • 中国万网域名查询瀑布流网站如何seo
  • 如何做网站界面免费行情软件app网站大全入口
  • fqapps com网站怎么做邯郸最新工程项目公示
  • 济宁网站建设招聘网页设计实用教程
  • 网站功能介绍wordpress 游戏 模板下载
  • 珍岛外贸网站建设wordpress 浮窗音乐
  • 做网站服务器价格多少合适扁平化设计网站代码