当前位置: 首页 > 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;}

相关文章:

  • 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
  • 科学养生,开启健康生活
  • 山西临汾哪吒主题景区回应雕塑被指抄袭:造型由第三方公司设计
  • 新能源汽车,告别混乱创新
  • SIFF动画单元公布首批片单:《燃比娃》《凡尔赛玫瑰》等
  • 人才争夺战,二三线城市和一线城市拼什么?洛阳官方调研剖析
  • 广东韶关一镇干部冲进交通事故火海救人,获授“见义勇为”奖励万元
  • 西王食品连亏三年:主业齐“崩”,研发人员多为专科生