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

代码随想录刷题学习日记

仅为个人记录复盘学习历程,解题思路来自代码随想录

代码随想录刷题笔记总结网址:
代码随想录

347.前 K 个高频元素

给定一个非空的整数数组,返回其中出现频率前 k 高的元素,可以按任意顺序返回答案。

提供参数:整数数组nums,整数k。

关键思路:使用优先级队列中的小顶堆排除所有不满足要求的元素

主要操作:

创建map,用于记录元素及其频率(元素数值,出现频率)

遍历数组,记录出现元素的出现频率

创建小顶堆,及定义大小比较方式

遍历map中的每一条键值对,进行判断:

若堆的大小小于k,直接加入

若对的大小大于等于k,进行判断:

        如果当前堆顶元素出现频率小于当前元素出现频率,将堆顶元素弹出,将新元素加入

          如果当前堆顶元素出现频率大于等于当前元素出现频率,不进行操作

最后堆中仅剩出现频率最高的k个元素

将堆中元素弹出,封装到返回数组int[]res返回

栈与队列总结篇学习

STL容器适配器:将不适用的序列式容器(包括 vector、deque 和 list)变得适用,通过封装某个序列式容器,并重新组合该容器中包含的成员函数,使其满足某些特定场景的需要。容器适配器本质上还是容器,只不过此容器模板类的实现,利用了大量其它基础容器模板类中已经写好的成员函数。当然,如果必要的话,容器适配器中也可以自创新的成员函数。STL 容器适配器内部使用的容器并不是固定的,用户可以在满足特定条件的多个基础容器中自由选择。

简单来说容器适配器就是通过对某些基础容器的调用组合,构造出的一种更适合实际应用场景的容器。

一个队列在模拟栈弹出元素的时候只要将队列头部的元素(除了最后一个元素外) 重新添加到队列尾部,此时在去弹出元素就是栈的顺序。

递归的实现是栈:每一次递归调用都会把函数的局部变量、参数值和返回地址等压入调用栈中,所以递归是不断堆叠的,递归中递的过程将还未完成的函数临时数据都进行了存储,等到归的时候再执行。

匹配问题是栈的强项。


http://www.kler.cn/news/363820.html

相关文章:

  • u盘装win10系统提示“windows无法安装到这个磁盘,选中的磁盘采用GPT分区形式”解决方法
  • stm32单片机基于rt-thread 的 串行 Flash 通用驱动库 SFUD 的使用
  • 【华为HCIP实战课程十八】OSPF的外部路由类型,网络工程师
  • 【摄像头产品介绍性能特点优点】
  • 【C++11】右值引用和移动语义
  • 若依前后分离版集成积木报表
  • 基础知识 main函数形参 C语言
  • C++:模板的特化与分离编译
  • Python re 模块:正则表达式的强大工具
  • 全局滚动和局部滚动
  • 多模态大语言模型(MLLM)-Deepseek Janus
  • Spring AI 1.0.0 M1版本新特性!
  • 代码随想录算法训练营第二十二天|Day22 回溯算法
  • Oracle10g运维 表增删改查
  • 【Vue.js设计与实现】第三篇第11章:渲染器-快速 Diff 算法-阅读笔记
  • 文案创作新思路:Python与文心一言API的完美结合
  • 《计算机视觉》—— 基于dlib库的人脸关键部位的轮廓检测
  • 【MySQL】详解表的约束
  • 【途牛旅游网-注册/登录安全分析报告】
  • vue2.x中的数据劫持
  • 视频剪辑和转换gif一体化UI页面【可以解决gif体积过大】
  • 【YOLOv11】制作使用YOLOv11的docker环境
  • 一道面试题:为什么要使用Docker?
  • Java项目-基于springboot框架的智慧外贸系统项目实战(附源码+文档)
  • COVON全意卫生巾凭借其轻薄、透气、绵柔的特点,在东南亚市场上迅速走红
  • 攻坚金融关键业务系统,OceanBase亮相2024金融科技大会