LeetCode992. Subarrays with K Different Integers

文章目录

    • 一、题目
    • 二、题解

一、题目

Given an integer array nums and an integer k, return the number of good subarrays of nums.

A good array is an array where the number of different integers in that array is exactly k.

For example, [1,2,3,1,2] has 3 different integers: 1, 2, and 3.
A subarray is a contiguous part of an array.

Example 1:

Input: nums = [1,2,1,2,3], k = 2
Output: 7
Explanation: Subarrays formed with exactly 2 different integers: [1,2], [2,1], [1,2], [2,3], [1,2,1], [2,1,2], [1,2,1,2]
Example 2:

Input: nums = [1,2,1,3,4], k = 3
Output: 3
Explanation: Subarrays formed with exactly 3 different integers: [1,2,1,3], [2,1,3], [1,3,4].

Constraints:

1 <= nums.length <= 2 * 104
1 <= nums[i], k <= nums.length

二、题解

恰好有k个不同元素的子数组的个数 = 最多有k个不同元素的子数组的个数 - 最多有k-1个不同元素的子数组的个数

class Solution {
public:int subarraysWithKDistinct(vector<int>& nums, int k) {return subarraysWithMostKDistinct(nums,k) - subarraysWithMostKDistinct(nums,k-1);}int subarraysWithMostKDistinct(vector<int>& nums,int k){unordered_map<int,int> map;int res = 0,collect = 0;for(int l = 0,r = 0;r < nums.size();r++){if(++map[nums[r]] == 1) collect++;while(collect > k){if(--map[nums[l++]] == 0) collect--;}res += r - l + 1;}return res;}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/632283.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阿里云ack集群管理及故障处理

一、集群管理维护 二、常见故障处理 存储&#xff1a; 网络 弹性伸缩 service

找不到vcomp140.dll无法继续执行怎么办,多种解决方法分享

当计算机系统提示“缺失vcomp140.dll”文件时&#xff0c;用户可能会面临一系列问题和困扰。vcomp140.dll是Visual Studio运行库中一个至关重要的动态链接库文件&#xff0c;对于许多基于Microsoft Visual C编译的应用程序来说&#xff0c;它是不可或缺的组件之一。一旦这个文件…

Spring 核心之 IOC 容器学习一

IOC 与 DI IOC(Inversion of Control)控制反转&#xff1a;所谓控制反转&#xff0c;就是把原先我们代码里面需要实现的对象创建、依赖的代码&#xff0c;反转给容器来帮忙实现。那么必然的我们需要创建一个容器&#xff0c;同时需要一种描述来让容器知道需要创建的对象与对象…

ReRAM电阻式随机存取存储器分析

Amir Regev在2023年8月8日的闪存记忆峰会上介绍了嵌入式ReRAM&#xff08;电阻式随机存取存储器&#xff09;市场的发展趋势及Weebit Nano公司在该领域的技术进展和成果。预计到2028年&#xff0c;新兴非易失性内存&#xff08;NVM&#xff09;市场将达到27亿美元&#xff0c;其…

“贵阳贵安加快建设数字经济发展创新区核心区”新闻发布会召开

作者&#xff1a;杨小婷 2022年1月&#xff0c;国务院印发国发〔2022〕2号文件&#xff0c;赋予贵州“数字经济发展创新区”的战略定位&#xff0c;要求贵州为产业转型升级和数字中国建设探索经验。贵阳贵安作为数字经济发展创新区核心区&#xff0c;全力以赴抢抓数字经济时代机…

QT-贪吃小游戏

QT-贪吃小游戏 一、演示效果二、关键程序三、下载链接 一、演示效果 二、关键程序 #include "Snake.h" #include "Food.h" #include "Stone.h" #include "Mushroom.h" #include "Ai.h" #include "Game.h" #inclu…

vue2踩坑之项目:vue2+element实现前端导出

1.安装插件依赖 npm i --save xlsx0.17.0 file-saver2.0.5 2.单页面引入 前端导出插件 import FileSaver from "file-saver"; import * as XLSX from "xlsx"; //html <el-form-item><el-button type"primary" plain size"mini&quo…

QT 绘图与重绘事件

代码实现仪表盘 .cpp #include "widget.h" #include "ui_widget.h"#include <QPainter> #include <QPen> #include <QBrush>#include <QDebug> Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->…

ORM Bee设计思想与功能思维导图

ORM Bee设计思想与功能思维导图 Bee&#xff0c;互联网新时代的Java ORM框架&#xff0c;支持Sharding&#xff1b;JDBC&#xff0c;Android&#xff0c;HarmonyOS&#xff1b;支持多种关系型数据库&#xff0c;还支持NoSQL的Cassandra&#xff0c;Mongodb等&#xff1b;更快、…

【现代控制系统】能控性与能观性

能控性与能观性 2023年11月25日 #controlsys 文章目录 能控性与能观性1. 能控性1.1 能控性&#xff08;可控性&#xff09;的引入1.2 LTI系统的可控性1.3 LTV系统的可控性 2. 能观性2.1 能观性&#xff08;可观性&#xff09;引入2.2 LTI系统的可观性2.3 LTV系统的可观性 3. 状…

分享用is_sorted()解决单调数列问题

题目名称 896. 单调数列 目录 题目名称 896. 单调数列 1.题目 2.题目分析 3.题目知识 3.1 is_sorted() 3.2.迭代器与反向迭代器 3.2.1理解迭代器 3.2.2正向迭代器 3.2.3反向迭代器 最后&#x1f368; 推荐阅读顺序: 1.题目->2.题目分析->3.题目知识点 1.题目 如…

前端vue2生成二维码并可保存

这里分成两步&#xff1a; 生成二维码 1、使用qrcode.js生成二维码 npm i qrcode --save2、使用逻辑 <canvas id"merQRCode" style"display: inline-block"></canvas>toMakeQRCode(value) {var qrCodeDom document.getElementById("m…

el-dialog嵌套使用,只显示遮罩层的问题

直接上解决方法 <!-- 错误写法 --><el-dialog><el-dialog></el-dialog></el-dialog><!-- 正确写法 --><el-dialog></el-dialog><el-dialog></el-dialog>我是不建议嵌套使用的&#xff0c;平级也能调用&#xff0c…

【前端HTML】HTML基础

文章目录 HTML标签标签属性 基本结构文档声明HTML标准结构HTML基础排版标签语义化标签块级元素与行内元素文本标签图片标签超链接跳转到指定页面跳转到文件跳转到锚点唤起指定应用 列表有序列表无序列表列表嵌套自定义列表 表格基本结构常用属性跨行跨列 常用标签表单基本结构常…

长虹智能电视3D51C4000iJ、3D60C4000iJ ZPM41Gi1机芯 整机USB刷机升级方法,及刷机程序

机芯&#xff1a;ZPM41Gi1 适用机型&#xff1a;3D51C4000iJ、3D60C4000iJ 升级方法&#xff1a; 1、将文件下载到电脑&#xff0c;解压后有3个文件&#xff0c;3个文件放到U盘的根目录。U盘必须使用FAT32格式&#xff1b; 2、将U盘接入电视的USB接口&#xff1b; 3、将电…

大创项目推荐 深度学习的视频多目标跟踪实现

文章目录 1 前言2 先上成果3 多目标跟踪的两种方法3.1 方法13.2 方法2 4 Tracking By Detecting的跟踪过程4.1 存在的问题4.2 基于轨迹预测的跟踪方式 5 训练代码6 最后 1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于深度学习的视频多目标跟踪实现 …

慢速 HTTP 攻击 Slow HTTP Attack漏洞原理以及修复方法

漏洞名称 &#xff1a;Slow Http attack、慢速攻击 漏洞描述&#xff1a;慢速攻击基于HTTP协议&#xff0c;通过精心的设计和构造&#xff0c;这种特殊的请求包会造成服务器延时&#xff0c;而当服务器负载能力消耗过大即会导致拒绝服务。HTTP协议规定&#xff0c;HTTP Reques…

VirtualBox安装openSUSE-Leap-15.5虚拟机并配置网络

VirtualBox安装openSUSE-Leap-15.5虚拟机并配置网络 适用于在VirtualBox平台上安装openSUSE-Leap-15.5虚拟机。 1. 安装准备 1.1 安装平台 Windows 11 1.2. 软件信息 软件名称软件版本安装路径Oracle VM VirtualBoxVirtualBox-7.0.12-159484D:\softwareopenSUSE-Leapopen…

HarmonyOS 转场动画 ForEach控制

本文 我们继续说组件的专场特效 上文 HarmonyOS 转场动画 我们通过if控制了转场效果 本文 我们通过 ForEach 控制它的加载和删除 这时候就有人会好奇 ForEach 怎么控制删除呢&#xff1f; 很简单 循环次数不同 例如 第一次 10个 第二次 5个 那么后面的五个就相当于删除啦 我们…

python的tabulate包在命令行下输出表格不对齐

用tabulate可以在命令行下输出表格。 from tabulate import tabulate# 定义表头 headers [列1, 列2, 列3]# 每行的内容 rows [] rows.append((张三,数学,英语)) rows.append((李四,信息科技,数学))# 使用 tabulate 函数生成表格 output tabulate(rows, headersheaders, tab…