刷题第10天
代码随想录刷题第10天 |● 239. 滑动窗口最大值 ● 347.前 K 个高频元素
239. 滑动窗口最大值
唉,好难,先记个思路吧
class Solution {
private:class MyQueue { //单调队列(从大到小)public:deque<int> que; // 使用deque来实现单调队列// 每次弹出的时候,比较当前要弹出的数值是否等于队列出口元素的数值,如果相等则弹出。// 同时pop之前判断队列当前是否为空。void pop(int value) {if (!que.empty() && value == que.front()) {que.pop_front();}}// 如果push的数值大于入口元素的数值,那么就将队列后端的数值弹出,直到push的数值小于等于队列入口元素的数值为止。// 这样就保持了队列里的数值是单调从大到小的了。void push(int value) {while (!que.empty() && value > que.back()) {que.pop_back();}que.push_back(value);}// 查询当前队列里的最大值 直接返回队列前端也就是front就可以了。int front() {return que.front();}};
public:vector<int> maxSlidingWindow(vector<int>& nums, int k) {MyQueue que;vector<int> result;for (int i = 0; i < k; i++) { // 先将前k的元素放进队列que.push(nums[i]);}result.push_back(que.front()); // result 记录前k的元素的最大值for (int i = k; i < nums.size(); i++) {que.pop(nums[i - k]); // 滑动窗口移除最前面元素que.push(nums[i]); // 滑动窗口前加入最后面的元素result.push_back(que.front()); // 记录对应的最大值}return result;}
};
前 K 个高频元素
看到出现的次数 就可以想到哈希表了,但是那个小顶堆完全没用过,难顶,语法都有点懵
class Solution {
public:// 小顶堆class mycomparison {public:bool operator()(const pair<int, int>& lhs, const pair<int, int>& rhs) {return lhs.second > rhs.second;}};vector<int> topKFrequent(vector<int>& nums, int k) {// 要统计元素出现频率unordered_map<int, int> map; // map<nums[i],对应出现的次数>for (int i = 0; i < nums.size(); i++) {map[nums[i]]++;}// 对频率排序// 定义一个小顶堆,大小为kpriority_queue<pair<int, int>, vector<pair<int, int>>, mycomparison> pri_que;// 用固定大小为k的小顶堆,扫面所有频率的数值for (unordered_map<int, int>::iterator it = map.begin(); it != map.end(); it++) {pri_que.push(*it);if (pri_que.size() > k) { // 如果堆的大小大于了K,则队列弹出,保证堆的大小一直为kpri_que.pop();}}// 找出前K个高频元素,因为小顶堆先弹出的是最小的,所以倒序来输出到数组vector<int> result(k);for (int i = k - 1; i >= 0; i--) {result[i] = pri_que.top().first;pri_que.pop();}return result;}
};
相关文章:
刷题第10天
代码随想录刷题第10天 |● 239. 滑动窗口最大值 ● 347.前 K 个高频元素 239. 滑动窗口最大值 唉,好难,先记个思路吧 class Solution { private:class MyQueue { //单调队列(从大到小)public:deque<int> que; // 使用deq…...
Bililive-go 实现直播自动监控录制
前言 最近有直播录制的需求,但是自己手动录制太麻烦繁琐,于是用了开源项目Bililive-go进行全自动监控录制,目前这个项目已经有3K stars了 部署 为了方便我使用了docker compose 部署 version: 3.8 services:bililive:image: chigusa/bilil…...
【Redis】Redis持久化模式RDB
目录 引子 RDB RDB的优缺点 小节一下 引子 不论把Redis作为数据库还是缓存来使用,他肯定有数据需要持久化,这里我们就来聊聊两种持久化机制。这两种机制,其实是 快照 与 日志 的形式。快照:就是当前数据的备份,我可以拷贝到磁…...
Java基础 - 模拟医院挂号系统
模拟医院挂号系统功能 1. 科室管理:新增科室,删除科室(如果有医生在,则不能删除该科室),修改科室 2. 医生管理:录入医生信息以及科室信息,修改医生信息(主要是修改个人…...
【论文精读】基于知识图谱关系路径的多跳智能问答模型研究
💗💗💗欢迎来到我的博客,你将找到有关如何使用技术解决问题的文章,也会找到某个技术的学习路线。无论你是何种职业,我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章,也欢…...
uni app 微信小程序微信支付
使用方法 接口传参 使用wx.requestPayment方法是一个统一各平台的客户端支付API,不管是在某家小程序还是在App中,客户端均使用本API调用支付...
Dgraph 入门教程一《 概览》
1、Dgraph的特点 (1) 分布式规模:可以发布和处理大量数据 (2)支持GraphQL:一种内置的查询语法,类似SQL。可以让数据操作起来更简单 (3)完全的事务处理和ACID兼容:满足OLTP工作负载,该负载要求频繁的插入和更新数据。 (4)支持多…...
VSCode安装
前言 Visual Studio Code 是一个轻量级功能强大的源代码编辑器,支持语法高亮、代码自动补全(又称 IntelliSense)、代码重构、查看定义功能,并且内置了命令行工具和 Git 版本控制系统。适用于 Windows、macOS 和 Linux。它内置了对…...
STM32各外设初始化步骤
1、GPIO初始化步骤 1、使能GPIO时钟 2、初始化GPIO的输入/输出模式 3、设置GPIO的输出值或获取GPIO的输入值 GPIO_InitTypeDef GPIO_InitStruct;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);GPIO_InitStruct.GPIO_Mode GPIO_Mode_Out_PP; GPIO_InitStruct.GPIO_Pin…...
10. Nginx进阶-Return
简介 什么是Return? nginx的return指令是用于在nginx配置文件中进行重定向或返回特定的HTTP响应码的指令。 它可以根据不同的条件来执行不同的操作,如重定向到其他URL、返回指定的HTTP响应码或自定义响应内容等。 Return适用范围 return指令只能在se…...
Nircmd集成定时执行专家之后的使用场景
Nircmd工具拥有了定时执行功能之后,可以用于以下场景: 1. 自动化日常工作 定时清理系统垃圾文件定时备份重要文件定时关闭或重启电脑定时发送邮件或短信定时执行其他程序或脚本 2. 监控系统状态 定时检查系统温度定时检查磁盘空间定时检查网络连接定时…...
Java面试题【必知必会】Linux常用命令面试题(2024)
近期一直在准备面试,所以为了巩固知识,也为了梳理,整理了一些java的基础面试题!同时也希望各位英雄和女侠能够补充!不胜荣幸!!! 名称地址Java面试题【必知必会】基础(202…...
元宇宙融合多功能气膜馆:开启娱乐与文化的数字新纪元
多功能气膜馆和元宇宙的结合,标志着娱乐和文化领域进入了全新的时代。元宇宙作为数字化空间的前沿概念,正在逐渐渗透到人们的日常生活中。而多功能气膜馆作为一种创新的场馆模式,则为人们提供了更为丰富多彩的娱乐和文化体验。这种融合不仅将…...
微信小程序本地开发
微信小程序本地开发时不需要在小程序后台配置服务器域名直接在小程序项目中填写后端在本机的IP地址和端口号 如图(第一步) 填写地址后发现报错,url不是合法域名,则在详情设置不校验合法域名 如图(第二歩)…...
2024火爆全网系列,原来RocketMQ中间件可以这么玩
前言 做了 3~5 年编程开发,你已经积累了不少项目经验,扩宽了技术广度,也许已发力成为团队管理者。到了这个阶段,大家却常有这种感受:感觉自己卡在瓶颈进步缓慢,技术水平很难像早期一样实现大幅突破&#x…...
2024阿里、网易、京东等大厂最新Java面试题,一举拿下腾讯美团滴滴offer
前言 一位小伙伴准备了许久的阿里Java面试,原以为能够顺利拿下offer,但在第三面还是被摁在地上反复摩擦,丧气一段时间后,小伙伴调整了心态重新尝试了一下,最终拿下了offer,今天小编把这位小伙伴遇到的面试…...
我的创作纪念日(2024.3.6)
机缘 从2020.10.11号进入博客,刚开始我只是把博客当作类似于微博的网站,用的比较少,后来到公司之后,开始使用博客进行做笔记,把工作上遇到的问题都记录下来,这样后面再遇到同样的问题就可以通过自己以前做…...
SpringBoot实战(1)
SpringBoot总结 一,Spring 设计思想 OOP: 面向对象编程-》封装、继承、多态 BOP: 面向Bean编程-》一切从Bean开始 AOP: 面向切面编程-》解藕、专 人做专事 IOC: 控制反转,将new 对象的操作交给Spring统一管理-》转交控制权 DI/DL: 依赖注入/依赖查找-》自动赋值 DI和AOP…...
Dgraph 入门教程二《 快速开始》
1、Clound 云 云地址:Dgraph Cloud 登录Clound 云后,可以用云上的东西操作,可以用谷歌账号或者github账号登录。 启动云 (1)在云控制台,点击 Launch new backend. (2)选择计划&…...
文件上传{session文件包含以及条件竞争、图片文件渲染绕过(gif、png、jpg)}
session文件包含以及条件竞争 条件: 知道session文件存储在哪里 一般的默认位置: /var/lib/php/sess_PHPSESSID /var/lib/php/sessions/sess_PHPSESSID /tmp/sess_PHPSESSID /tmp/sessions/sess_PHPSESSID ####在没做过设置的情况下一般都是存储在/var…...
Ostrakon-VL零售AI降本方案:替代人工巡检,单店年省8万元
Ostrakon-VL零售AI降本方案:替代人工巡检,单店年省8万元 1. 零售巡检的痛点与AI解决方案 在传统零售运营中,门店巡检是一项耗时耗力的日常工作。店长或督导人员需要每天检查: 商品陈列是否整齐货架缺货情况价签是否正确店铺环境…...
续航提升40%?EnergyStarX让Windows 11设备电量焦虑成为历史
续航提升40%?EnergyStarX让Windows 11设备电量焦虑成为历史 【免费下载链接】EnergyStarX 🔋 Improve your Windows 11 devices battery life. A WinUI 3 GUI for https://github.com/imbushuo/EnergyStar. 项目地址: https://gitcode.com/gh_mirrors/…...
FRCRN处理长音频文件实战:切片、批处理与结果合并
FRCRN处理长音频文件实战:切片、批处理与结果合并 你是不是遇到过这样的问题?手头有一段长达数小时的会议录音、访谈素材或者播客音频,背景噪音让人头疼,想用FRCRN这样的降噪模型处理一下,结果发现模型一次只能处理几…...
树莓派新手必看:保姆级vim安装与配置指南(含国内源切换和常见报错解决)
树莓派新手必看:保姆级vim安装与配置指南(含国内源切换和常见报错解决) 第一次接触树莓派的新手们,面对命令行操作往往既兴奋又忐忑。作为Linux系统中最强大的文本编辑器之一,vim的高效与灵活令人向往,但初…...
终极Windows 11系统优化指南:使用Win11Debloat让你的电脑飞起来!
终极Windows 11系统优化指南:使用Win11Debloat让你的电脑飞起来! 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other change…...
Jar Analyzer:提升Java开发效率的全方位JAR分析工具
Jar Analyzer:提升Java开发效率的全方位JAR分析工具 【免费下载链接】jar-analyzer Jar Analyzer - 一个 JAR 包 GUI 分析工具,方法调用关系搜索,方法调用链 DFS 算法分析,模拟 JVM 的污点分析验证 DFS 结果,字符串搜索…...
Flow.js源码深度解析:分块算法、上传策略与事件系统的实现原理
Flow.js源码深度解析:分块算法、上传策略与事件系统的实现原理 【免费下载链接】flow.js A JavaScript library providing multiple simultaneous, stable, fault-tolerant and resumable/restartable file uploads via the HTML5 File API. 项目地址: https://gi…...
Boomer:轻量高效的Linux屏幕放大镜工具
Boomer:轻量高效的Linux屏幕放大镜工具 【免费下载链接】boomer Zoomer application for Linux 项目地址: https://gitcode.com/gh_mirrors/boo/boomer 当你需要精准查看屏幕细节时是否常感到操作繁琐?无论是设计工作中的像素级调整、编程时的代码…...
深入RK3588 NPU架构:从NVDLA远亲到CNN加速器的设计取舍与性能真相
RK3588 NPU架构深度解构:CNN加速器的设计哲学与性能边界 当一块指甲盖大小的芯片宣称能提供6 TOPS的AI算力时,我们不禁要问:这数字背后隐藏着怎样的工程智慧与妥协?RK3588的NPU模块正引发这样的思考——它既非纯粹的学术创新&…...
高效实时换脸架构优化:Deep-Live-Cam技术实现与部署方案
高效实时换脸架构优化:Deep-Live-Cam技术实现与部署方案 【免费下载链接】Deep-Live-Cam real time face swap and one-click video deepfake with only a single image 项目地址: https://gitcode.com/GitHub_Trending/de/Deep-Live-Cam Deep-Live-Cam是一款…...
