一:题目


二:思路

1.用两个篮子装进两个数,后面只能装入这两个相同的数,并统计个数;如果遇到其他数,则重新开始计数,
这里的重新开始计数指的是在去除第一个篮子中所装进的数
2.滑动窗口来做
滑动窗口的起始位置为:数组的起始位置
滑动体为 统计的个数
滑动窗口的结束位置为:遇到第三种水果

三:上码

int max(int a,int b){return a > b ? a : b; }int totalFruit(vector<int>& fruits) {int j = 0;//起始位置int maxx = 0;//统计最大的个数map<int,int> m;//用于统计两种水果的数量map<int,int>:: iterator mt;for(int i = 0; i < fruits.size(); i++){m[fruits[i]] += 1;int temp = j;while(m.size() > 2){//当篮子装入水果遇到第三种水果的时候m[fruits[j]]--;if(m[fruits[j]] == 0){//这是为了淘汰前两种水果中的第一种m.erase(fruits[j]);}   j++;//需要将起始指针往后移}maxx = max(maxx,i-temp);//统计前两种水果的个数}if(m.size() == 2 || m.size() == 1){//这是特殊处理水果总数为2 和 1的int sum = 0;for(mt = m.begin(); mt != m.end(); mt++){sum += mt->second;} maxx = max(maxx,sum);}return maxx;}
};


菜鸡杰又水了一篇 ,滑动窗口很nice!!! 加油

leetcode 904:水果成篮(滑动窗口)相关推荐

  1. 【042】904. 水果成篮[滑动窗口]

    你正在探访一家农场,农场从左到右种植了一排果树.这些树用一个整数数组 fruits 表示,其中 fruits[i] 是第 i 棵树上的水果 种类 . 你想要尽可能多地收集水果.然而,农场的主人设定了一 ...

  2. LeetCode 904. 水果成篮

    904. 水果成篮 题目:你正在探访一家农场,农场从左到右种植了一排果树.这些树用一个整数数组 fruits 表示,其中 fruits[i] 是第 i 棵树上的水果 种类 . 你想要尽可能多地收集水果 ...

  3. LeetCode 904. 水果成篮【fruit-into-baskets】

    904. 水果成篮 题目详情 题目传送门:904. 水果成篮 在一排树中,第 i 棵树产生 tree[i] 型的水果. 你可以从你选择的任何树开始,然后重复执行以下步骤: 把这棵树上的水果放进你的篮子 ...

  4. 力扣(LeetCode)904. 水果成篮(C语言)

    一.环境说明 本文是 LeetCode 904题 : 水果成篮,使用c语言实现 滑动窗口+哈希集合. 测试环境:Visual Studio 2019 二.代码展示 //滑动窗口+哈希表,一次遍历O(n ...

  5. LeetCode 904. 水果成篮(滑动窗口)

    1. 题目 在一排树中,第 i 棵树产生 tree[i] 型的水果. 你可以从你选择的任何树开始,然后重复执行以下步骤: 把这棵树上的水果放进你的篮子里.如果你做不到,就停下来. 移动到当前树右侧的下 ...

  6. leetcode904. 水果成篮(滑动窗口)

    一:题目 二:上码 class Solution {public:/**思路:滑动窗口1.滑动窗口为我们 两个品种水果的个数2.滑动窗口的起始位置为数组的起始位置,当遇见一个新的水果种类的时候,这时候 ...

  7. 2022-7-8 Leetcode 904.水果成篮

    错误的代码: class Solution {public:int totalFruit(vector<int>& fruits) {int start = 0;int end = ...

  8. leetcode:904. 水果成篮

    题目来源 leetcode:904. 水果成篮 题目描述 题目解析 题意 题意从任意位置开始,若最多只能收集两种水果,问最多能收集多少个水果. 这道题目可以理解为求只包含两种元素的最长连续子序列,和l ...

  9. 904. 水果成篮(数组、滑动窗口)

    904. 水果成篮(数组.滑动窗口) 考察点: 数组.滑动窗口 水果成篮 你正在探访一家农场,农场从左到右种植了一排果树.这些树用一个整数数组 fruits 表示,其中 fruits[i] 是第 i ...

最新文章

  1. c语言作业 龟兔赛跑,c语言龟兔赛跑
  2. 蓝桥杯 大臣的旅费(Java dfs)
  3. android源码查看源码的版本
  4. 直播带货的罗永浩再被限制高消费!本人回应:已取消 会尽快还债
  5. 开课吧:Html5有哪些新特性?
  6. es6 箭头函数后面的大括号
  7. visual studio运行时库MT、MTd、MD、MDd的区别
  8. LAMMPS分子动力学模拟技术及应用
  9. Vue 电商管理系统
  10. postman接口测试如何发送json
  11. 调用高德地图、百度地图客户端
  12. 计算机按键截图,怎么截图快捷键-如何给windows软件设定快捷键(截图工具、计算器、记事本等)...
  13. java解析project mpp文件_Java解析Project mpp文件
  14. JMF的安装与环境的配置
  15. dos2unix 解决脚本执行过程中的莫名错误 “not found”
  16. 复利java_复利计算1.0,2.0,3.0(java)
  17. Photoshop设计网站原型图
  18. 如何在阿里云服务器构建discuz论坛(快速lamp架构)
  19. 2020-10《信息资源管理 02378》真卷(独家文字版),圈定章节考点+统计真题分布
  20. NOKIA手机共有的缺陷

热门文章

  1. PHP开发自己的框架必备知识点
  2. [转]redis 5.0.5 5分钟搭建redis集群
  3. 剑指offer之左旋转字符串
  4. Android之ndk-build -j4
  5. Android之React Native平台与Android本地模块之间的调用
  6. 佳鑫诺计算机模拟卷答案,微机原理练习册答案佳鑫诺).docx
  7. 地理模块化施工的优点_模块化建筑适合学校的6个原因
  8. python程序题斐波那契数列_Python_经典题_斐波那契数列
  9. 老师:你根本不知道我有多想逃课
  10. 梦真的是反的 | 今日最佳