904专题

904.水果成篮

题目 链接:leetcode链接 思路分析(滑动窗口) 读完题目,很明显,这个题目需要我们寻找一个最长子数组,使得这个子数组里面最多存在两种不同的数字,很容易联想到使用滑动窗口。 另外,需要使用hash表来记录区间内的不同种水果的个数 首先还是left,right = 0; 进窗口:right进哈希表 判断:哈希表的size > 2,就需要出窗口 出窗口:hash[left]–的同时,

Leet code 904 水果成篮

解题思路:滑动窗口 创建hash表记录水果的种类和数量  两个指针left 和 right 从数组起始位置开始滑动,right在循环内++ hash[fruits[right]]++  进窗口 然后判断 hash表中的种类是否大于2 一旦大于2就要想办法出窗口  出窗口需要将hash表中种类重回2种 这时候就要动用left指针 然后更新结果  代码如下 class Soluti

C++刷题笔记(4)——leetcode209、904

题目1:209.长度最小的子数组 暴力解法 解题思路: 用两个for循环,外层for循环负责做子序列的起点,内层for循环负责遍历数组,寻找符合条件的子序列 然后外层for循环移动子序列的起点,继续再数组中寻找新的符合条件的子序列,并与之前找到的子序列长度做比较 时间复杂度O(n^2) class Solution {public:int minSubArrayLen(int tar

904. 虫洞(spfa判断负环模板题)

904. 虫洞 - AcWing题库 农夫约翰在巡视他的众多农场时,发现了很多令人惊叹的虫洞。 虫洞非常奇特,它可以看作是一条 单向 路径,通过它可以使你回到过去的某个时刻(相对于你进入虫洞之前)。 农夫约翰的每个农场中包含 N 片田地,M 条路径(双向)以及 W 个虫洞。 现在农夫约翰希望能够从农场中的某片田地出发,经过一些路径和虫洞回到过去,并在他的出发时刻之前赶到他的出发地。 他希

leetcode---904. 水果成篮 -- 【滑动窗口/c++】

原题:904. 水果成篮 - 力扣(LeetCode) 题目解析: 本题中的fruit数组中的元素表示的是数的种类。如示例1,fruit【1,2,1】就表示下标0处有1号类型的树,下标1处有2号类型的树,下标2处有1号类型的树。 而最多只能摘两种类型的果子,在示例1中就是,从下标0开始 有 1,2,1可以摘遍所有树;或者从下标1开始 有 2,1只能摘两颗树。所以在示例

【优选算法系列】【专题二滑动窗口】第三节.904. 水果成篮和438. 找到字符串中所有字母异位词

文章目录 前言一、水果成篮      1.1 题目描述      1.2 题目解析           1.2.1 算法原理           1.2.2 代码编写           1.2.3 题目总结二、找到字符串中所有字母异位词      2.1 题目描述      2.2 题目解析           2.2.1 算法原理           2.2.2 代码编写

[补题记录] Codeforces Round 904 (Div. 2)(C)

URL:https://codeforces.com/contest/1884 目录 C Problem/题意 Thought/思路 Code/代码 C Problem/题意 有一个长度为 M 的序列,初始值都为 0。 现在给出 N 个区间 [l, r],当选择某个区间时,可以让该区间内的数都 + 1。 对于每一种选择方案,其代价为:最大的数 - 最小的数。 问如何选

904. Fruit Into Baskets

904. Fruit Into Baskets 原题链接:完成情况:解题思路:参考代码: 原题链接: 904. Fruit Into Baskets https://leetcode.cn/problems/fruit-into-baskets/ 完成情况: 解题思路: 连续数组 -> 滑动窗口 -> 右边正常移动,左边框定起始边界进行移动. 题目有点傻逼,

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

目录 一、题目 二、代码 一、题目  力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 二、代码 题目实质:找出一个最长的子数组的长度,要求子数组中不超过两种类型的水果哈希表+双指针  class Solution {public:int totalFruit(vector<int>& fruits) {int _MaxCount = INT_MIN;int _