首页 > 其他分享 >904. 水果成篮

904. 水果成篮

时间:2022-10-17 11:34:58浏览次数:86  
标签:水果 904 示例 int cnt 采摘 fruits 成篮

904. 水果成篮

你正在探访一家农场,农场从左到右种植了一排果树。这些树用一个整数数组 fruits 表示,其中 fruits[i] 是第 i 棵树上的水果 种类

你想要尽可能多地收集水果。然而,农场的主人设定了一些严格的规矩,你必须按照要求采摘水果:

  • 你只有 两个 篮子,并且每个篮子只能装 单一类型 的水果。每个篮子能够装的水果总量没有限制。
  • 你可以选择任意一棵树开始采摘,你必须从 每棵 树(包括开始采摘的树)上 恰好摘一个水果 。采摘的水果应当符合篮子中的水果类型。每采摘一次,你将会向右移动到下一棵树,并继续采摘。
  • 一旦你走到某棵树前,但水果不符合篮子的水果类型,那么就必须停止采摘。

给你一个整数数组 fruits ,返回你可以收集的水果的 最大 数目。

示例 1:

输入:fruits = [1,2,1]
输出:3
解释:可以采摘全部 3 棵树。

示例 2:

输入:fruits = [0,1,2,2]
输出:3
解释:可以采摘 [1,2,2] 这三棵树。
如果从第一棵树开始采摘,则只能采摘 [0,1] 这两棵树。

示例 3:

输入:fruits = [1,2,3,2,2]
输出:4
解释:可以采摘 [2,3,2,2] 这四棵树。
如果从第一棵树开始采摘,则只能采摘 [1,2] 这两棵树。

示例 4:

输入:fruits = [3,3,3,1,2,1,1,2,3,3,4]
输出:5
解释:可以采摘 [1,2,1,1,2] 这五棵树。

提示:

  • 1 <= fruits.length <= 105
  • 0 <= fruits[i] < fruits.length

官方解法:滑动窗口

func totalFruit(fruits []int) (ans int) {
    cnt := map[int]int{}
    left := 0
    for right,x := range fruits {
        cnt[x]++
        for len(cnt) > 2 {
            y := fruits[left]
            cnt[y]--
            if cnt[y] == 0 {
                delete(cnt,y)
            }
            left++
        }
        ans = max(ans,right-left+1)
    }
    return ans
}

func max(a,b int) int {
    if a > b {
        return a
    }
    return b
}

 


标签:水果,904,示例,int,cnt,采摘,fruits,成篮
From: https://www.cnblogs.com/fulaien/p/16798565.html

相关文章

  • web前端 html+css+javascript网页设计实例 水果网站制作
    ......
  • Scratch少儿编程系列:(十二)数字接水果
    一、程序说明数字接水果,是一个用scratch2.0实现的一个数字小游戏。点击绿旗,程序开始运行:1、屏幕下方出现一个篮子,用来接水果,可以通过鼠标控制左右移动;该篮子上面有一个......
  • 实战 20220904笔记本1
                                  ......
  • docker安装 jenkins 20220904
    ###https://www.cnblogs.com/fuzongle/p/12834080.html1、#####下载Jenkins镜像dockerpulljenkins/jenkins2、宿主机=》创建jenkins的目录####/var/jenkins_mount......
  • 20220904研讨会图鲁棒性
    网络增强第一个解决方案从网络数据本身还原 ......
  • 水果管理系统
    页面效果登录页面主页面添加水果修改水果删除水果多条件查询分页后端前端......
  • 吃水果
    吃水果$n$个小朋友站成一排,等着吃水果。一共有$m$种水果,每种水果的数量都足够多。现在,要给每个小朋友都发一个水果,要求:在所有小朋友都拿到水果后,恰好有$k$个小朋友......
  • STL中map容器的应用(HDU1263水果题解)
    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1263题目描述:TimeLimit:2000MS;MemoryLimit:65536K;夏天来了~Joe经营着一个不大的水果店.他认为生存之道就......
  • PS新手教程 --如何使用ps打造逼真冰冻水果效果
    如何使用ps打造逼真冰冻水果效果?水果加在冰块里的效果应该怎么做出来呢?用ps来做其实不难,让我来教教你!Photoshop2022 打开图片,我这里打开两张图片,做一下示范。1.先把......
  • 水果管理系统
    1.概述水果管理系统是最简单的一个javaWeb项目,主要对水果表进行增删改查。页面上有添加水果按钮,点击后可以跳转到添加页面,添加水果(增)有关键字查询,在页面上输入关键字,......