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

滑动窗口——水果成篮

根据题意我们转化一下,在数组中求一个最长的子数组,数组中的数字种类不超过2种。

借助暴力思想,我们定义双指针进行进窗口、判断、出窗口、更新结果的流程。

我们需要借助hash表来记录不同数字出现的种类以及每个数字出现的次数。然后先让right数字放hash,判断,如果种类小于等于2,重复上述操作,如果大于2,left++,并在hash中删去对应次数。直到遍历完全(right<size)。

int Solution(vector<int>&f)
{unordered_map<int,int> hash;int ret=0;for(int left=0,right=0;right<f.size();right++){hash[f[right]]++;while(hash.size()>2){hash[f[left]]--;if(hash[f[left]]==0){//如果该数字出现0次要删除减少hash容量hash.erase(f[left]);}left++;}ret=max(ret,right-left+1);}return ret;}

http://www.dtcms.com/a/189309.html

相关文章:

  • Java后端快速生成验证码
  • 【NextPilot日志移植】params.c解析
  • 携程酒店 phantom-token token1004 分析
  • 什么是原码和补码
  • python中的进程锁与线程锁
  • 关于索引的使用
  • pe文件二进制解析(用c/c++解析一个二进制pe文件)
  • HTTP协议解析:Session/Cookie机制与HTTPS加密体系的技术演进(二)
  • 基于STM32、HAL库的PCM3060PWR 音频接口芯片驱动程序设计
  • UDP协议详细讲解及C++代码实例
  • 转发多台px4仿真UDP数据到地面站
  • KIVI: A Tuning-Free Asymmetric 2bit Quantization for KV Cache
  • sqlserver免费版每天备份数据库
  • 【计算机网络】3数据链路层②
  • 数据结构(一) 绪论
  • 进程与线程:07 CPU调度策略
  • 黑马Java基础笔记-10
  • Spring框架请求注解
  • Java键盘鼠标事件监听器(鼠标)MouseListener、MouseMotionListener、MouseWheelListener和(键盘)keyListener
  • 科学养生,开启健康生活
  • Spring Security与SaToken的对比
  • 机试刷题:进制转换3
  • 蓝桥杯题库经典题型
  • 【Linux】操作系统入门:冯诺依曼体系结构
  • Python作业练习3
  • 【愚公系列】《Manus极简入门》036-物联网系统架构师:“万物互联师”
  • mysql环境配置
  • do while
  • 『大模型笔记』Langchain作者Harrison Chase专访:环境智能体与全新智能体收件箱
  • 从零开始掌握FreeRTOS(1)移植到STM32