在一排树中,第 i 棵树产生 tree[i] 型的水果。 请注意,在选择一颗树后,你没有任何选择:你必须执行步骤 1,然后执行步骤 2,然后返回步骤 1,然后执行步骤 2,依此类推,直至停止。 你有两个篮子,每个篮子可以携带任何数量的水果,但你希望每个篮子只携带一种类型的水果。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/fruit-into-baskets 类似题目: 360 ms 57.4 MB
1. 题目
你可以从你选择的任何树开始,然后重复执行以下步骤:
用这个程序你能收集的水果总量是多少?示例 1: 输入:[1,2,1] 输出:3 解释:我们可以收集 [1,2,1]。 示例 2: 输入:[0,1,2,2] 输出:3 解释:我们可以收集 [1,2,2]. 如果我们从第一棵树开始,我们将只能收集到 [0, 1]。 示例 3: 输入:[1,2,3,2,2] 输出:4 解释:我们可以收集 [2,3,2,2]. 如果我们从第一棵树开始,我们将只能收集到 [1, 2]。 示例 4: 输入:[3,3,3,1,2,1,1,2,3,3,4] 输出:5 解释:我们可以收集 [1,2,1,1,2]. 如果我们从第一棵树或第八棵树开始,我们将只能收集到 4 个水果。 提示: 1 <= tree.length <= 40000 0 <= tree[i] < tree.length
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。2. 解题
LeetCode 424. 替换后的最长重复字符(滑动窗口)
class Solution { public: int totalFruit(vector<int>& tree) { unordered_map<int,int> m; int i = 0, j = 0, n = tree.size(), maxf = 0; while(j < n) { if(m.size() > 2)//水果大于2种 { m[tree[i]]--;//左端丢弃 if(m[tree[i]]==0) m.erase(tree[i]);//计数为0,删除 i++; } m[tree[j]]++;//右端点加入 if(m.size() <= 2) maxf = max(maxf, j-i+1); j++; } return maxf; } };
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算
官方软件产品操作指南 (170)