首页 > 其他分享 >leetcode 2958. 最多 K 个重复元素的最长子数组

leetcode 2958. 最多 K 个重复元素的最长子数组

时间:2024-12-10 15:24:15浏览次数:7  
标签:right nums int resLenth 2958 数组 leetcode numAdded size

2958. 最多 K 个重复元素的最长子数组

class Solution {
public:
    int maxSubarrayLength(vector<int>& nums, int k) {
        int size = nums.size(),resLenth = 0;
        unordered_map<int,int> numAdded;
        for(int left = 0,right = 0;right < size;++right){
            ++numAdded[nums[right]];
            if(numAdded[nums[right]] > k){
                while(numAdded[nums[right]] > k)  --numAdded[nums[left++]];//没必要值为1就erase,题目的求解和numAdded.size()没有任何关系
            }
            resLenth = max(resLenth,right-left+1);
        }
        return resLenth;
    }
};

 

标签:right,nums,int,resLenth,2958,数组,leetcode,numAdded,size
From: https://www.cnblogs.com/uacs2024/p/18597434

相关文章

  • [LeetCode] 1524. Number of Sub-arrays With Odd Sum
    Givenanarrayofintegersarr,returnthenumberofsubarrayswithanoddsum.Sincetheanswercanbeverylarge,returnitmodulo109+7.Example1:Input:arr=[1,3,5]Output:4Explanation:Allsubarraysare[[1],[1,3],[1,3,5],[3],[3,5],[5]]Allsu......
  • C语言基础-数组:一维数组与二维数组
    数组例子如果我们要在程序中表示一个学生的成绩,我们会使用一个int来表示,假如我们要在程序中表示一组成绩,此时我们所学的常规的数据类型就无法再表示,这时就需要使用一种新的表现形式,这种表现形式就是数组什么是数组数组是相同类型,有序数据的集合数组的特征数组中的数据......
  • 数组去重:双指针法的优雅实现
    数组去重:双指针法的优雅实现在日常开发中,数组去重是一个常见的需求。无论是处理用户输入、数据清洗,还是优化算法性能,去重操作都扮演着重要角色。本文将介绍一种高效的去重方法——双指针法,并结合代码示例,帮助你轻松掌握这一技巧。1.问题描述给定一个包含重复元素的数组,要求删......
  • 【数据结构与算法】回溯算法:LeetCode“排列问题” 求解,解释并模拟递归+回溯的遍历过程
      【作者自述:记录学习笔记,既然写了就让更多的人看到吧!欢迎大家关注交流学习,一步一个脚印持续更新!】【更多推荐笔记】【数据结构与算法】动态规划:解密“完全背包问题”的真相!附LeetCode四大问题的实现-CSDN博客【数据结构与算法】动态规划:解密“0-1背包问题”的真相!附LeetC......
  • 请说说JS中的索引数组、关联数组和静态数组、动态数组的定义与区别
    在JavaScript中,数组的概念比较灵活,不像一些强类型语言那样区分得那么严格。JS中的数组实际上是一种特殊的对象,既可以像索引数组一样通过数字索引访问元素,也可以像关联数组一样通过字符串键访问元素。所以,严格意义上来说,JS只有动态数组,它兼具了索引数组和关联数组的特性。而静......
  • leetcode 面试经典 150 题:验证回文串
    链接验证回文串题序号125类型字符串解题方法双指针法难度简单题目如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个回文串。字母和数字都属于字母数字字符。给你一个字符串s,如果它是回文串......
  • leetcode 258. 各位相加。数学
    258.各位相加给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。返回这个结果。其中0≤num≤2^31-1法一:迭代classSolution{public:intaddDigits(intnum){while(num>=10){//判断千万别写成num<10intsum=0;......
  • JS代码片段-Array数组克隆的几种方法
    JavaScript自身提供了几种克隆数组的方法,以下做了汇总,以作参考:1.展开运算符(...) ES6引入了展开运算符(...),这是创建数组浅克隆最常见的方法。leta=[1,2,3,4,5];letb=[...a];2.Array.from()leta=[1,2,3,4,5];letb=Array.from(a);3.Array.prototype.s......
  • leetcode 904. 水果成篮
    904.水果成篮说白了就是:找最多包含两种元素的最长子串,返回其长度值得注意的是,当窗口内有三种种类时,左窗口边界是要向右移动到窗口内只剩两种种类,而不是什么先进先出!比如[1,0,1,4,1,4,1,2,3] 法一:unordered_mapclassSolution{public:inttotalFruit(vector<int>&......
  • leetcode543.二叉树的直径
    给你一棵二叉树的根节点,返回该树的 直径 。二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。两节点之间路径的 长度 由它们之间边数表示。示例1:输入:root=[1,2,3,4,5]输出:3解释:3,取路径[4,2,1,3]或......