First In First Out 通常可以用来保存状态。 操作:入,出,获取顶部元素 典型题目: 1. 有效的括号 如果里没有匹配的括号,则将此括号入; 如果里有匹配的括号,则将匹配的括号出。 匹配的过程用查表法(哈希)。 2. 最小 需要用到一个辅助MinStack记录min, ...
转载 2021-08-28 14:45:00
51阅读
2评论
算法,向来是个老大难问题,对于程序员的重要性来说不言而喻。而且越来越多的面试,都加入了算法题。能否找到心仪满意的工作,算法可能是拉开差距的择优点。虽然工作中可能用到的场景比较少,但是它实际有效的训练了我们的逻辑思维能力。提高了对程序性能,代码性能,和执行率。所以,平时有一定的算法思维,对于本身还是有益的。 这里将成为个人记录算法的地方,希望有更多有兴趣的人,讨论研究,共同进步。 来个抛砖引玉吧!
原创 2021-07-07 15:49:29
107阅读
单调定义:内元素单调按照递增(递减)顺序排列的基本作用:可以从数组中找到左右两边比x大(小)的数,时间复杂度为O(n)单调的基本操作:●为了维护的单调性,在进过程中需要进行判断,具体进过程如下:假设当前进元素为e,●对于单调递减,从顶开始遍历元素,把小于e或者等于e的元素弹出,直至遇见一个大于e的元素或者为空为止,然后再把e压入中,这样就能满足从底到顶的元素是递减的。
/*============================================================================Name : 工程4.cAuthor : arkorVersion :Copyright : Your copyright noticeDescription : Hello World in C, Ansi-style============
原创 2011-01-06 12:18:59
479阅读
1点赞
算法—单调小结 前言 在leetcode刷题的时候遇到了503. 下一个更大元素 II。一开始是使用暴力解法,会因为$O(n^2)$的时间复杂度而导致超时。看了题解之后了解了单调相关的知识,运用单调的方法可以在$O(n)$时间内解决这个问题。 单调 单调是在的FILO(先进后出)的特性在 ...
转载 2021-10-13 19:22:00
78阅读
2评论
单调模板:单调模板: for (遍历这个数组) while (不为空 && 顶元素<或者>当前元素) 顶元素出 更新结果 当前数据入 例如单调递增的stack,python实现就是: stack = [] for i in range(0, len(arr)): while stack and stack[-1]
原创 2023-07-28 22:08:22
78阅读
1 典型的单调问题,利用单调递减进行解决,从前和从后遍历都可以解决问题,从后遍历时,确定的是入元素的答案,从前遍历时,确定的是出元素的答案,739. 每日温度2 利用单调递减解决,关键是出时计算每个位置当前可以盛水的量,所以每次出后要保证不空,才可以计算盛水量,否则结束,42. 接雨水3 用单调递减从前往后遍历,多了一个用哈希表来记录映射,496. 下一个更大元素 I4 单调递增
738. 单调递增的数字
原创 2023-03-21 09:07:51
62阅读
详细分析的特点及应用场景,并实例讲解
原创 2021-12-09 14:38:43
54阅读
算法-队列堆简介:算法篇-队列堆      不敢高声语,恐惊天上人。一、用两个实现队列1、题目描述用两个来实现一个队列,完成队列的 Push 和 Pop 操作。2、解题思路in 用来处理入(push)操作,out 用来处理出(pop)操作。一个元素进入 in 之后,出的顺序被反转。当元素要出时,需要先进入 out ,此时元素出顺序再一次被反转,因此出顺序就和最开始入
原创 2021-12-21 14:01:54
273阅读
我们都知道和队列是两种很相似的数据结构,但是又有他们的特点是一种先进后出的数据结构,FILO(先进后出)队列是一种先
原创 2022-07-29 10:53:18
73阅读
题目: 找出一组数中 右边第一个比他大的数 和 左边第一个比他大的数 维护一个底到顶 从大到小的,当压入的数大于顶的数 统计顶数的左边最大与右边最大 当没有压入值的时候 依次弹出 求出左边最大的值 里 底下的数是大于当前数的 上面的数是小于当前数的 求最近的大于当前值的数是 顶到底 ...
转载 2021-07-26 17:50:00
121阅读
2评论
1、描述设计一个支持push、pop、top操作,并且能在常数时间内检索到最小元素的。 push(x) --- 将元素 x 推入中 pop() --- 删除顶的元素 top() --- 获取顶的元素 getMin() --- 检索中的最小元素例1:var minStack = MinStack....
原创 2021-09-02 09:30:08
193阅读
单调的应用在刚接触单调的时候,我们在做了几道入门题后可能会对单调有一定的了解,但是却有点难以归纳说出单调到底适用于什么题目、能解决什么样的问题(或者在遇到什么类型的题目时我们要想到用单调),我刚开始也百思不得其解,但在后面将几道相关题目一一对比之后,我忽然对单调的应用有了更深的理解。1.单调的特点:1.后进先出1.单调性:单调中存储的所有元素一定是单调增或减的。2.单调的作用归纳
的定义:(stack)是一种用于存储数据的简单数据结构。一个有序线性表,只能在表的一端(PS:顶)执行插人和删除操作。最后插人的元素将被第一个删除。所以,也称为后进先出(Last In First Out,LIFO)或先进后出(First In Last Out,FILO)线性表。 Java 集合框架中的 Stack 继承自 Vector:由于 Vector 有 4
摘要相关算法练习一、算法练习题目94. 二叉树的中序遍历package 算法; import java.util.*; public class inorderTraversal94 { public class TreeNode { int val; TreeNode left; TreeNode right;
原创 2023-04-04 12:50:16
60阅读
 提到方法的递归调用,需要先说一下的存储概念。  是一个先进后出的压入(push)和弹出(pop)式数据存储结构。若想获取到底的对象,就必须先将这个对象上面的所有的对象全部从中移除,否则无法获取底的对象。  我们来看看程序中是如何工作的,当一个方法(调用者)调用另一个方法(被调用者)时,将会将调用者的参数和返回值一起压入到中,此时调用者方法处于顶的位置,当调用者执行到调用方法的语
  package com.tw.dst.sq;    /**   *    * <p>算法:是一种后进先出的方式</p>   * @author tangw 2010-11-26   */
原创 2010-11-27 15:17:52
536阅读
2点赞
4评论
10.16 ①有效的括号 给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 示例 1: 输入:s = "()" 输出:true 示例 2: 输入:s = "()[ ...
转载 2021-10-16 12:21:00
38阅读
2评论
原创 2022-01-04 16:36:43
395阅读
  • 1
  • 2
  • 3
  • 4
  • 5