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

LeetCode 904.水果成篮

LeetCode 904.水果成篮

image-20241124190616838

思路🧐:

  求水果的最大数目,也就是求最大长度,我们是单调的向前求解,则能够想到使用滑动窗口进行解答,可以用hash表统计每个种类的个数,kinds变量统计当前种类,left和right表示左边框和右边框,且都从起点开始。

  右边框先走,当种类个数为0时,表示这是个新种类,kinds++,当kinds大于2,则不满足题意,需要删减旧的种类,再移动左边框,当种类个数为0时,旧种类删减完成,继续移动右边框,重复该过程并每次循环都算一下长度,直到right走到尾结束。

image-20241124191710576

代码🔎:

class Solution {
public:int totalFruit(vector<int>& fruits) {int hash[100001] = { 0 }; //针对题目数据范围优化int len = 0;for(int left = 0, right = 0, kinds = 0; right < fruits.size(); right++){if(hash[fruits[right]] == 0) //如果哈希表对应的水果下标为0,就表示有一个新的种类kinds++;hash[fruits[right]]++; //对应下标修改个数while(kinds > 2) //当种类大于2,表示不能再装了,需要消除旧的种类{hash[fruits[left]]--; //对应hash表减去该种类个数if(hash[fruits[left]] == 0) //当减到0,表示旧的种类没有了kinds--; //种类减少left++; //移动左边框}len = max(len, right - left + 1); //长度计算}return len;}
};

return len;

}

};


![image-20241124191735745](https://img-blog.csdnimg.cn/img_convert/6b419397b927e6f34c470b60ba8ea3fd.png)
http://www.lryc.cn/news/491206.html

相关文章:

  • GitHub 开源项目 Puter :云端互联操作系统
  • 美创科技入选2024数字政府解决方案提供商TOP100!
  • 七天掌握SQL--->第五天:数据库安全与权限管理
  • 数学建模学习(138):基于 Python 的 AdaBoost 分类模型
  • 丹摩|丹摩智算平台深度评测
  • 『VUE』34. 异步组件(详细图文注释)
  • 深入解析自校正控制(STC)算法及python实现
  • 《macOS 开发环境配置与应用开发》
  • WebSocket 常见问题及解决方案
  • 如何在 .gitignore 中仅保留特定文件:以忽略文件夹中的所有文件为例
  • 详解八大排序(一)------(插入排序,选择排序,冒泡排序,希尔排序)
  • Linux虚拟机空间扩容(新增磁盘并分区挂载)
  • 数据结构 ——— 直接选择排序算法的实现
  • MySQL中的ROW_NUMBER窗口函数简单了解下
  • day24|leetCode 93.复原IP地址 , 78.子集 , 90.子集II
  • RocketMQ: Broker 使用指南
  • 【Linux 篇】Docker 的容器之海与镜像之岛:于 Linux 系统内探索容器化的奇妙航行
  • 5、AI测试辅助-生成测试用例思维导图
  • nature communications论文 解读
  • 基于Java Springboot公园管理系统
  • 神经网络(系统性学习三):多层感知机(MLP)
  • 07-SpringCloud-Gateway新一代网关
  • HTML 表单实战:从创建到验证
  • 【redis 】string类型详解
  • Vue.js 学习总结(13)—— Vue3 version 计数介绍
  • 【数据结构】【线性表】一文讲完队列(附C语言源码)
  • 2024年11月最新 Alfred 5 Powerpack (MACOS)下载
  • ODBC连接PostgreSQL数据库后,网卡DOWN后,客户端进程阻塞问题解决方法
  • VsCode使用git提交很慢(一直显示在提交)_vscode commit很慢解决方法
  • linux从0到1——shell编程9