当前位置: 首页 > 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.xdnf.cn/news/422461.html

相关文章:

  • 正则表达式常用验证(一)
  • vim,gcc/g++,makefile,cmake
  • 如何用URDF文件构建机械手模型并与MoveIt集成
  • 获取accesstoken时,提示证书解析有问题,导致无法正常获取token
  • do while
  • 从代码学习深度学习 - 全卷积神经网络 PyTorch版
  • 【网络编程】七、详解HTTP 搭建HTTP服务器
  • MySQL 5.7在CentOS 7.9系统下的安装(上)——以rpm包的形式下载mysql
  • 音频特征工具Librosa包的使用
  • Windows Java gRPC 示例
  • windowsC++操作ADB
  • archlinux中挂载macOS的硬盘
  • keepalived+lvs
  • S32DS删除历史安装的license code(Software Activation Code)
  • 什么是序列化与反序列化
  • CodeBuddy终极测评:中国版Cursor的开发革命(含安装指南+HTML游戏实战)
  • 计算机网络网络层(下)
  • 奇妙小博客
  • 虚拟仿真技术在康养休闲旅游服务实训室中的核心应用
  • tomcat搭建内网论坛
  • 利用比较预言机处理模糊的偏好数据
  • 问题及解决02-处理后的图像在坐标轴外显示
  • Spring Boot 项目中什么时候会抛出 FeignException?
  • Pattern and Match
  • 【Qwen3 + MCP】快速打造一个免费的Qwen AI图像生成助手
  • 【前缀和】和为 K 的子数组(medium)
  • 数据清洗案例
  • 开源自定义Python库并上传到PyPi
  • 基于几何布朗运动的股价预测模型构建与分析
  • 华为0507机试