第五章 栈与队列part02

150. 逆波兰表达式求值

本题不难,但第一次做的话,会很难想到,所以先看视频,了解思路再去做题

题目链接/文章讲解/视频讲解:https://programmercarl.com/0150.%E9%80%86%E6%B3%A2%E5%85%B0%E8%A1%A8%E8%BE%BE%E5%BC%8F%E6%B1%82%E5%80%BC.html

题目感想:

1.直接通过栈,遇到符号压出前面两个数字进行计算,将结果再次入栈;

239. 滑动窗口最大值 (有点难度,可能代码写不出来,但一刷至少需要理解思路)

之前讲的都是栈的应用,这次该是队列的应用了。

本题算比较有难度的,需要自己去构造单调队列,建议先看视频来理解。

题目链接/文章讲解/视频讲解:https://programmercarl.com/0239.%E6%BB%91%E5%8A%A8%E7%AA%97%E5%8F%A3%E6%9C%80%E5%A4%A7%E5%80%BC.html

题目感想:

1.思路就是通过构建一个单调队列,如果新加入的元素大于之前末尾的元素,则去除之前末尾的元素进行循环,直到末尾元素大于新元素或者队列为空;之后弹出peek就是最大的;

347.前 K 个高频元素 (有点难度,可能代码写不出来,一刷至少需要理解思路)

大/小顶堆的应用, 在C++中就是优先级队列

本题是 大数据中取前k值 的经典思路,了解想法之后,不算难。

题目链接/文章讲解/视频讲解:https://programmercarl.com/0347.%E5%89%8DK%E4%B8%AA%E9%AB%98%E9%A2%91%E5%85%83%E7%B4%A0.html

题目感想:

1.就是先通过map进行出现频次的统计,之后将其加入优先级队列,有大顶堆和小顶堆两种实现,主要关乎的就是从大到小还是从小到大;

2.如果是大顶堆那就可以直接输出前k个就行了,小顶堆的话得最后输出的k个才是我们需要的,然后需要倒叙排列一下;

代码随想录第十天 | 栈与队列part02的更多相关文章

  1. 【LeetCode】232.使用栈模拟队列

    使用栈模拟队列 ​ 请你仅使用两个栈实现先入先出队列.队列应当支持一般队列支持的所有操作(push.pop.peek.empty):实现 MyQueue 类: void push(int x) 将元素 ...

  2. 数据结构之栈和队列及其Java实现

    栈和队列是数据结构中非常常见和基础的线性表,在某些场合栈和队列使用很多,因此本篇主要介绍栈和队列,并用Java实现基本的栈和队列,同时用栈和队列相互实现. 栈:栈是一种基于“后进先出”策略的线性表.在 ...

  3. 代码随想录算法训练营day10 | leetcode 232.用栈实现队列 225. 用队列实现栈

    基础知识 使用ArrayDeque 实现栈和队列 stack push pop peek isEmpty() size() queue offer poll peek isEmpty() size() ...

  4. C++学习(三十)(C语言部分)之 栈和队列

    数据结构1.保存数据 2.处理数据数组+操作增查删改 栈和队列是一种操作受限的线性表 栈 是先进后出 是在一端进行插入删除的操作--->栈顶 另一端叫做栈底(栈和栈区是两个概念)(是一种数据结构 ...

  5. 《数据结构》C++代码 栈与队列

    线性表中,先进先出的叫队列,先进后出的叫栈.队列常用于BFS,而在函数递归层数过高时,需要手动实现递归过程,这时候便需要写一个“手动栈”. 有时候,我们会有大量数据频繁出入队列,但同时存在其内的元素却 ...

  6. SDUT-2449_数据结构实验之栈与队列十:走迷宫

    数据结构实验之栈与队列十:走迷宫 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 一个由n * m 个格子组成的迷宫,起 ...

  7. 【leetcode 简单】 第六十六题 用栈实现队列

    使用栈实现队列的下列操作: push(x) -- 将一个元素放入队列的尾部. pop() -- 从队列首部移除元素. peek() -- 返回队列首部的元素. empty() -- 返回队列是否为空. ...

  8. 线性表 及Java实现 顺序表、链表、栈、队列

    数据结构与算法是程序设计的两大基础,大型的IT企业面试时也会出数据结构和算法的题目, 它可以说明你是否有良好的逻辑思维,如果你具备良好的逻辑思维,即使技术存在某些缺陷,面试公司也会认为你很有培养价值, ...

  9. JavaScript 数据结构与算法之美 - 线性表(数组、栈、队列、链表)

    前言 基础知识就像是一座大楼的地基,它决定了我们的技术高度. 我们应该多掌握一些可移值的技术或者再过十几年应该都不会过时的技术,数据结构与算法就是其中之一. 栈.队列.链表.堆 是数据结构与算法中的基 ...

  10. 剑指offer笔记面试题9----用两个栈实现队列

    题目:用两个栈实现一个队列.队列的声明如下,请实现它的两个函数appendTail和deleteHead,分别完成在尾部插入节点和在队列头部删除节点的功能. 测试用例: 往空的队列里添加.删除元素. ...

随机推荐

  1. httprunner 断言报错 expect_value 和check_value类型不一致

    csv 源码 drillCode,drillName,code,msg y500,牙轮500,200,操作成功 YL201,牙轮201,500,牙轮编号已存在 运行后报错 E httprunner.e ...

  2. 关于我这周的kotlin的学习:

    今天学习了kotlin方法的参数和一些lambda的一些知识,其中也是和我们上次日报中讲的方法一样,有三种分类,默认参数,具名参数,可变数量的参数.和以前一样,我们举个例子来理解这个知识点:先是默认方 ...

  3. 错误修正记录:对应的VMware Tools脚本未能成功运行

    起因 装了台式机,想把笔记本里的vmware虚拟机迁移过来:复制过来后开机就出现这种情况,点开机.挂起.关机等操作会报错,然后无法挂起(再点一次就行) 或者使用下方的选项,而非上方包装过的功能,似乎也 ...

  4. js解析json字符串、对象与json之间的转换

    前言 在数据传输流程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键. js解析json字符串 // JSON字符串 'v ...

  5. Redis 高可用方案

    本文分享自天翼云开发者社区<Redis 高可用方案>,作者:芋泥麻薯 一.常见使用方式 Redis的几种常见使用方式包括: Redis单副本: • Redis多副本(主从): • Redi ...

  6. BUUCTF---RSA4

    题目 点击查看代码 N = 33131032421200003002021431224423222240014241042341310444114020300324300210433321420203 ...

  7. 【SpringCloud】SpringCloud config分布式配置中心

    SpringCloud config分布式配置中心 概述 分布式系统面临的---配置问题 微服务意味着要将单体应用中的业务拆分成一个个子服务 ,每个服务的粒度相对较小,因此系统中会出现大量的服务.由于 ...

  8. 【电脑】重装Win10之后无法唤醒和正常关机(Y9000P 2022)

    问题: Y9000P 2022 改Windows10后经常关机关不全(自带键盘灯亮,电源指示灯不灭),这还不是最重要的,它一会儿不用到时间自动休眠后还经常唤醒不了 解决: 两个问题,总结一下: 一.关 ...

  9. Win10怀旧--win7体验

    右键菜单变窄(1903以后失效) HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\FlightedFeatures Immer ...

  10. Model Context Protocol

    MCP is an open protocol that enables AI models to securely interact with local and remote resources ...