文章 2024-05-20 来自:开发者社区

数据结构与算法⑧(第三章_上)栈的概念和实现(力扣:20. 有效的括号)

一、栈(stack) 栈的概念: ① 栈是一种特殊的线性表,它只允许在固定的一端进行插入和删除元素的操作。 ② 进行数据插入的删除和操作的一端,称为栈顶 。另一端则称为 栈底 。 ③ 栈中的元素遵守后进先出的原则,即 LIFO原则(Last In First Out)。 压栈:栈的插入操作叫做 进栈 / 压栈 / 入栈 ,入数据在栈顶。 出栈:栈的...

数据结构与算法⑧(第三章_上)栈的概念和实现(力扣:20. 有效的括号)
文章 2024-03-01 来自:开发者社区

【数据结构与算法】6、栈(Stack)的实现、LeetCode:有效的括号

一、栈(Stack) 栈是一种特殊的线性表,只能在一端进行操作 往栈中添加元素的操作,一般叫做 push(入栈) 从栈中移除元素的操作,一般叫做 pop,出栈(只能移除栈顶元素),也叫做:弹出栈顶元素 后进先出的原则,Last In First Out,LIFO ...

【数据结构与算法】6、栈(Stack)的实现、LeetCode:有效的括号
文章 2024-01-30 来自:开发者社区

代码随想录 Day49 单调栈01 LeetCode LeetCodeT739每日温度 T496 下一个最大元素I

前言折磨的死去活来的动态规划终于结束啦,今天秋秋给大家带来两题非常经典的单调栈问题,可能你不清楚单调栈是什么,可以用来解决什么问题,今天我们就来一步一步的逐渐了解单调栈,到能够灵活使用单调栈.注意以下讲解中,顺序的描述为 从栈头到栈底的顺序什么时候用单调栈?通常是一维数组,要寻找任一个元素的右边或者左边第一个比自己大或者小的元素的位置,此时我们就要想到可以用单调栈了。时间复杂度为O(n)。这种情....

代码随想录 Day49 单调栈01 LeetCode LeetCodeT739每日温度 T496 下一个最大元素I
文章 2024-01-22 来自:开发者社区

【单调栈】LeetCode:2818操作使得分最大

题目给你一个长度为 n 的正整数数组 nums 和一个整数 k 。一开始,你的分数为 1 。你可以进行以下操作至多 k 次,目标是使你的分数最大:选择一个之前没有选过的 非空 子数组 nums[l, …, r] 。从 nums[l, …, r] 里面选择一个 质数分数 最高的元素 x 。如果多个元素质数分数相同且最高,选择下标最小的一个。将你的分数乘以 x 。nums[l, …, r] 表示 n....

【单调栈】LeetCode:2818操作使得分最大
文章 2024-01-22 来自:开发者社区

【前缀和】【单调栈】LeetCode2281:巫师的总力量和

题目作为国王的统治者,你有一支巫师军队听你指挥。给你一个下标从 0 开始的整数数组 strength ,其中 strength[i] 表示第 i 位巫师的力量值。对于连续的一组巫师(也就是这些巫师的力量值是 strength 的 子数组),总力量 定义为以下两个值的 乘积 :巫师中 最弱 的能力值。组中所有巫师的个人力量值 之和 。请你返回 所有 巫师组的 总 力量之和。由于答案可能很大,请将答....

【前缀和】【单调栈】LeetCode2281:巫师的总力量和
文章 2024-01-22 来自:开发者社区

【单调栈】LeetCode2334:元素值大于变化阈值的子数组

题目给你一个整数数组 nums 和一个整数 threshold 。找到长度为 k 的 nums 子数组,满足数组中 每个 元素都 大于 threshold / k 。请你返回满足要求的 任意 子数组的 大小 。如果没有这样的子数组,返回 -1 。子数组 是数组中一段连续非空的元素序列。示例 1:输入:nums = [1,3,4,3,1], threshold = 6输出:3解释:子数组 [3,4....

【单调栈】LeetCode2334:元素值大于变化阈值的子数组
文章 2024-01-22 来自:开发者社区

【单调栈】LeetCode2030:含特定字母的最小子序列

题目给你一个字符串 s ,一个整数 k ,一个字母 letter 以及另一个整数 repetition 。返回 s 中长度为 k 且 字典序最小 的子序列,该子序列同时应满足字母 letter 出现 至少 repetition 次。生成的测试用例满足 letter 在 s 中出现 至少 repetition 次。子序列 是由原字符串删除一些(或不删除)字符且不改变剩余字符顺序得到的剩余字符串。字....

【单调栈】LeetCode2030:含特定字母的最小子序列
文章 2024-01-22 来自:开发者社区

map|动态规划|单调栈|LeetCode975:奇偶跳

题目给定一个整数数组 A,你可以从某一起始索引出发,跳跃一定次数。在你跳跃的过程中,第 1、3、5… 次跳跃称为奇数跳跃,而第 2、4、6… 次跳跃称为偶数跳跃。你可以按以下方式从索引 i 向后跳转到索引 j(其中 i < j):在进行奇数跳跃时(如,第 1,3,5… 次跳跃),你将会跳到索引 j,使得 A[i] <= A[j],A[j] 是可能的最小值。如果存在多个这样的索引 j,....

map|动态规划|单调栈|LeetCode975:奇偶跳
文章 2024-01-22 来自:开发者社区

【单调栈】LeetCode:1944队列中可以看到的人数

题目有 n 个人排成一个队列,从左到右 编号为 0 到 n - 1 。给你以一个整数数组 heights ,每个整数 互不相同,heights[i] 表示第 i 个人的高度。一个人能 看到 他右边另一个人的条件是这两人之间的所有人都比他们两人 矮 。更正式的,第 i 个人能看到第 j 个人的条件是 i < j 且 min(heights[i], heights[j]) > max(h....

【单调栈】LeetCode:1944队列中可以看到的人数
文章 2024-01-22 来自:开发者社区

【单调栈】LeetCode1776:车队

题目在一条单车道上有 n 辆车,它们朝着同样的方向行驶。给你一个长度为 n 的数组 cars ,其中 cars[i] = [positioni, speedi] ,它表示:positioni 是第 i 辆车和道路起点之间的距离(单位:米)。题目保证 positioni < positioni+1 。speedi 是第 i 辆车的初始速度(单位:米/秒)。简单起见,所有车子可以视为在数轴上移....

【单调栈】LeetCode1776:车队

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

算法编程

开发者社区在线编程频道官方技术圈。包含算法资源更新,周赛动态,每日一题互动。

+关注
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等