当前位置: 首页 > news >正文

2799. 统计完全子数组的数目

给你一个由  整数组成的数组 nums 。

如果数组中的某个子数组满足下述条件,则称之为 完全子数组 :

  • 子数组中 不同 元素的数目等于整个数组不同元素的数目。

返回数组中 完全子数组 的数目。

子数组 是数组中的一个连续非空序列。

示例 1:

输入:nums = [1,3,1,2,2]
输出:4
解释:完全子数组有:[1,3,1,2]、[1,3,1,2,2]、[3,1,2] 和 [3,1,2,2] 。

示例 2:

输入:nums = [5,5,5,5]
输出:10
解释:数组仅由整数 5 组成,所以任意子数组都满足完全子数组的条件。子数组的总数为 10 。

提示:

  • 1 <= nums.length <= 1000
  • 1 <= nums[i] <= 2000

 解题思路

当数组长度越长时,显然越容易满足题意。对于这种问题,要用滑动窗口来解决。

枚举右端点r,同属用哈希表存储。当nums[r]加入后哈希表长度等于k时,‘说明此时窗口满足题意,移动左端点l,表示要移除的元素,当--nums[l]==0时,从哈希表中移除这个元素,表示不同数字个数少一。

内层循环结束后,ans+=left。因为数组长度越长越容易符合题意,所以left-1到0的位置都是符合题意的子数组。一共有left个。

 小技巧,统计nums中不同数字个数的方法

unordered_set<int> st(nums.begin(),nums.end());
int k = st.size();

完整代码

class Solution {
public:int countCompleteSubarrays(vector<int>& nums) {unordered_set<int> st(nums.begin(),nums.end());int k = st.size();unordered_map<int,int> cnt;int ans = 0,left = 0;for(int x : nums){cnt[x]++;while(cnt.size() == k){//当窗口中不同数字的个数符合要求时//缩小窗口int out = nums[left];if(--cnt[out] == 0){cnt.erase(out);}left++;}ans += left;//}return ans;}
};

相关文章:

2799. 统计完全子数组的数目

给你一个由 正 整数组成的数组 nums 。 如果数组中的某个子数组满足下述条件&#xff0c;则称之为 完全子数组 &#xff1a; 子数组中 不同 元素的数目等于整个数组不同元素的数目。 返回数组中 完全子数组 的数目。 子数组 是数组中的一个连续非空序列。 示例 1&#xff…...

docker镜像构建常用参数

要退出出去ctrlpq&#xff0c;或者直接输入exit也可以直接退出 这样就生成了可以这么用&#xff0c;但安全性比较差&#xff0c;不利于审计 企业里构建的镜像这样&#xff1a; “.”是构建的地点是当前的意思&#xff1b;构建了一层在[2/2]RUN touch /leefile里面 发现有我…...

如何用postman进行批量操作

业务场景&#xff1a; 有些时候&#xff0c;我们会需要批量的将SAP B1系统中的几千条的数据删除或者取消单据&#xff0c;这个时候&#xff0c;一条条去操作&#xff0c;指定是到猴年马月了。SAP Business One本身提供了DTW这个工具&#xff0c;但是这个更新&#xff0c;可以操…...

【MCP】第三篇:Cline工具链路追踪——解码“协议引擎“的神经传导奥秘

【MCP】第三篇&#xff1a;Cline工具链路追踪——解码"协议引擎"的神经传导奥秘 一、引言二、CloudFlare AI Gateway2.1 核心定位2.2 核心能力2.3 与MCP协议逆向的深度契合 三、VSCode Cline与CloudFlare联调实战3.1 CloudFlare配置3.2 VSCode Cline配置3.3 联调实战…...

HTML标记语言_@拉钩教育【笔记】

目录 1.文本标签 2.格式化标签 3.图片标签 4.超链接标签 5.表格标签 6表单标签 6.1 6.2 6.3 7.行内框架(超链接内套一个页面) 8.多媒体标签(音/视频) 1.文本标签 2.格式化标签 3.图片标签 4.超链接标签 5.表格标签 6表单标签 6.1 6.2 6.3 7.行内框架(超链接内套一个…...

SDK游戏盾、高防IP、高防CDN三者的区别与选型指南

在网络安全防护领域&#xff0c;SDK游戏盾、高防IP和高防CDN是常见的解决方案&#xff0c;但各自的功能定位、技术实现和适用场景差异显著。本文将通过对比核心差异&#xff0c;帮助您快速理解三者特点并选择适合的防护方案。 一、核心功能定位 SDK游戏盾 功能核心&#xff1a…...

C++中的格式化字符串

C中的格式化字符串 fmt 库简介 {fmt}是一个开源的、现代化的C格式化库&#xff0c;由Victor Zverovich创建。它提供了一种安全、快速且方便的字符串格式化方式&#xff0c;其设计理念受到了Python的str.format()的启发 fmt库的主要特点 易用性&#xff1a;使用简洁的语法&a…...

民办生从零学C的第十二天:指针(1)

每日励志&#xff1a;拼搏十年&#xff0c;征战沙场&#xff0c;不忘初心&#xff0c;努力成为一个浑身充满铜臭味的有钱人。 一.内存和地址 1.内存 计算机内存是一系列存储单元的集合&#xff0c;每个存储单元都有唯一的地址来标识。这些存储单元用于存储程序的数据和指令。…...

复习Vue136~180

1.使用create-vue创建项目 npm init vuelatest 项目目录和关键文件&#xff1a; new Vue() 创建一个应用实例 > createApp()、createRouter() createStore() 、将创建实例进行了封装&#xff0c;保证每个实例的独立封闭性。 禁用vue2的插件vuter 使用vue3的插件volar scrip…...

高炉项目中DeviceNET到Ethernet的转换奥秘

在工业自动化的世界中&#xff0c;高炉项目中的数据通信至关重要。其中DeviceNET和Ethernet作为两种主流的网络协议&#xff0c;扮演着不可或缺的角色。它们之间的转换不仅仅是技术上的桥梁&#xff0c;更是实现信息高效传递的关键。今天&#xff0c;我们就来揭开从DeviceNET到…...

awk之使用详解(Detailed Explanation of Using AWK)

awk使用详解 1. 入门 1.1 什么是 awk&#xff1f; ①Awk是一种文本处理工具&#xff0c;适用于处理结构化数据&#xff0c;例如表格数据。 ②它可以读取一个或多个文本文件&#xff0c;并执行模式扫描和处理等指定的操作。 ③基本逻辑涉及数据的提取&#xff0c;排序和计算…...

TDR阻抗会爬坡? 别担心,不是你的错,你只是不够了解TDR!

在背板系统或任何长走线设计里&#xff0c;你大概都碰过这画面&#xff1a; TDR 曲线一开始乖乖在 92 Ω&#xff0c;但越往末端、阻抗越爬越高&#xff0c;来到最高 97 Ω&#xff0c;心里瞬间凉半截 &#x1f612; &#xff0c;「难不成... 板厂又翻车了吗&#xff1f;」 然…...

TypeScript之基础知识

基础知识 1. 基本类型 类型描述string字符串&#xff08;如 "hello"&#xff09;number数字&#xff08;整数或浮点数&#xff0c;支持二进制、八进制、十六进制&#xff09;boolean布尔值&#xff08;true/false&#xff09;null空值&#xff08;需显式声明&#x…...

SNMP协议之详解(Detailed Explanation of SNMP Protocol)

SNMP协议之详解 一、前言 SNMP&#xff0c;被形象地喻为网络世界大的工具箱&#xff0c;使他们能的“智慧守护者”&#xff0c;它为网络管理员装备了一套功能强够实现对网络设备状态的实时监控、性能数据的全面收集、远程配置的灵活管理以及故障事件的即时响应。借助SNMP&…...

机器学习-入门-线性模型(2)

机器学习-入门-线性模型(2) 3.4广义线性回归 一般形式&#xff1a; y g − 1 ( w T x b ) y g^{-1} \left( w^T x b \right) yg−1(wTxb) 单调可微的联系函数 (link function) 令 g ( ⋅ ) ln ⁡ ( ⋅ ) g(\cdot) \ln (\cdot) g(⋅)ln(⋅) 则得到对数线性回归 ln ⁡…...

【问题】docker容器修改环境变量的方式

问题 启动n8n之后&#xff0c;docker容器提示&#xff1a; There is a deprecation related to your environment variables. Please take the recommended actions to update your configuration: 2025-04-28 09:20:08 - N8N_RUNNERS_ENABLED -> Running n8n without tas…...

基于 Spring Boot 瑞吉外卖系统开发(八)

基于 Spring Boot 瑞吉外卖系统开发&#xff08;八&#xff09; 自动填充公共字段 MyBatis-Plus公共字段自动填充&#xff0c;也就是在插入或者更新的时候为指定字段赋予指定的值&#xff0c;使用它的好处就是可以统一对这些字段进行处理&#xff0c;降低了冗余代码的数量。本…...

LeetCode热题100--560.和为K的子数组(前缀和)--中等

1.题目 给你一个整数数组 nums 和一个整数 k &#xff0c;请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 示例 1&#xff1a; 输入&#xff1a;nums [1,1,1], k 2 输出&#xff1a;2 示例 2&#xff1a; 输入&#xff1a;nums […...

搭建 Spark YARN 模式集群指南

在大数据处理领域&#xff0c;Apache Spark 凭借其卓越的性能和易用性广受青睐。而 YARN&#xff08;Yet Another Resource Negotiator&#xff09;作为 Hadoop 的资源管理框架&#xff0c;能高效管理集群资源。将 Spark 与 YARN 结合&#xff0c;以 YARN 模式搭建集群&#xf…...

服务器部署,Nginx安装和配置

Nginx简介 Nginx是一款轻量级和高性能的web服务器、反向代理服务器和电子邮件代理服务器。你可以使用Nginx实现网页的部署&#xff0c;解决跨域问题实现邮件服务器&#xff0c;甚至Nginx也可以实现音视频推流拉流服务器&#xff0c;Nginx可以实现的功能远超你的想象&#xff0…...

Java后端接口调用拦截处理:注解与拦截器的实现

在Java开发中&#xff0c;对后端接口调用进行拦截处理是一种常见的需求&#xff0c;通常用于权限验证、Token校验、状态更新等操作。本文将围绕 Spring框架的拦截器&#xff08;Interceptor&#xff09;、Spring AOP&#xff08;面向切面编程&#xff09; 和 Spring Security 三…...

C++(初阶)(十四)——多态

多态 面向对象的其中一大特征。 多态多态的定义及构成多态的构成条件多态的实现条件多态的分类编译时多态性运行时的多态性 虚函数定义不能成为虚函数的函数 虚函数重写&#xff08;覆盖&#xff09;选择题虚函数重写的其他问题析构函数的重写override 和final关键字重载/重写…...

PyQt6基础_QThread

目录 前置 代码&#xff1a; 运行 正常运行 QThread运行报错 视频 前置 1 PySide6.QtCore.QThread - Qt for Python QThread官方文档 2 长时间任务可以放到QThread中执行&#xff0c;避免占用主线程导致界面卡顿无法操作 代码&#xff1a; import traceback,sys fro…...

工业通讯现场中关于EtherCAT转TCPIP网关的现场应用

在当今工业自动化的浪潮中&#xff0c;EtherCAT技术以其高效、实时的特性成为了众多制造业的首选。然而&#xff0c;随着工业互联网的发展&#xff0c;对于数据的远程访问和云平台集成的需求日益增长&#xff0c;这就需要将EtherCAT协议转化为更为通用的TCP/IP协议。于是开疆智…...

vite创建vue3项目并进行配置

创建项目 方式一 执行以下命令 之后输入项目名称 选择框架 选择语言 例如 pnpm create vite此方式创建的项目较为干净 0手起步 只包含一些基础依赖 例如vue vite等 项目目录如下 "scripts": {"dev": "vite","build": "vue-tsc -…...

LeetCode 热题 100_最小路径和(92_64_中等_C++)(多维动态规划)

LeetCode 热题 100_最小路径和&#xff08;92_64&#xff09; 题目描述&#xff1a;输入输出样例&#xff1a;题解&#xff1a;解题思路&#xff1a;思路一&#xff08;多维动态规划&#xff09;&#xff1a; 代码实现代码实现&#xff08;思路一&#xff08;多维动态规划&…...

关于常量指针和指向常量的指针

关于指针&#xff0c;对于常量指针和指向常量的指针也是傻傻分不清。看到定义时&#xff0c;不知道是指针不能变&#xff0c;还是指针指向的内容不能变量。 先看形式&#xff1a; const char * A; char * const B; 这两种有什么区别&#xff1f;傻傻分不清。 A这种定义&am…...

新时代下的存储过程开发实践与优化

随着现代应用系统的复杂度不断增加&#xff0c;数据库作为核心的数据存储和处理引擎&#xff0c;其性能和可靠性显得尤为重要。存储过程&#xff08;Stored Procedure&#xff09;作为一种封装在数据库中的应用逻辑&#xff0c;使得开发者能够在数据库层面实现数据操作、数据校…...

4月28日日记

2025年4月28日 星期一 晴 今天过得格外充实&#xff0c;也充满了收获与喜悦。 下午&#xff0c;我参加了学校的五四述职大会。各个学院的团委书记依次上台&#xff0c;汇报过去一年的工作成果。看着大家在台上分享着各自学院的精彩故事&#xff0c;我深受触动。他们所展示的活…...

大模型性能测试

当我们部署了大模型并对外提供服务时&#xff0c;我们通常都想了解一下大模型能够支持多少个并发访问&#xff0c;在不同的并发数下&#xff0c;模型的性能如何。了解这些信息有助于我们更好的对算力进行评估&#xff0c;为用户带来更好的性能体验。 大模型通常是通过API接口的…...

利用 Google Earth Engine 探索江宁区 2010 - 2020 年 EVI 时空变化

引言 增强型植被指数&#xff08;Enhanced Vegetation Index&#xff0c;EVI&#xff09;是一种用于量化植被生长状态和覆盖程度的重要指标&#xff0c;它在监测植被动态、生态环境评估以及气候变化研究等领域发挥着关键作用。Google Earth Engine&#xff08;GEE&#xff09;…...

IEC 61850标准协议解读 2.基于Java的MMS实现

专栏文章目录 第一章 IEC 61850标准协议解读 0.导言 第二章 IEC 61850标准协议解读 1.建模讲解 第三章 IEC 61850标准协议解读 2.基于Java的MMS实现 目录 专栏文章目录前言1 依赖库引入2 创建服务端3 创建客户端4 读写模型4.1 服务端读写4.2 客户端读写 5.报告6 文件服务6.1 读…...

花费7元训练自己的GPT 2模型

在上一篇博客中&#xff0c;我介绍了用Tensorflow来重现GPT 1的模型和训练的过程。这次我打算用Pytorch来重现GPT 2的模型并从头进行训练。 GPT 2的模型相比GPT 1的改进并不多&#xff0c;主要在以下方面&#xff1a; 1. GPT 2把layer normalization放在每个decoder block的前…...

【android bluetooth 协议分析 06】【l2cap详解 10】【通过avdtp连接流程,感受l2cap通道的生命周期变化】

本篇我们通过分析一个具体的实例&#xff0c;来直观感受一下 l2cap 中通道的 状态变化。 1. 环境描述&#xff1a; 车机&#xff1a; a2dp sink手机: a2dp source场景&#xff1a; 手机主动 触发 连车机 声明一下&#xff1a; 分析的btsnoop 和 logcat 还有源码&#xff0c;…...

如何在idea中写spark程序。

要在IntelliJ IDEA中编写Spark程序&#xff0c;你可以按照以下步骤进行&#xff1a; 1. 安装和配置Java&#xff1a;确保你的计算机上已经安装了Java Development Kit (JDK)&#xff0c;并且已配置好 JAVA_HOME 环境变量。 2. 安装IntelliJ IDEA&#xff1a;下载并安装Inte…...

Pytest-mark使用详解(跳过、标记、参数 化)

1.前言 在工作中我们经常使用pytest.mark.XXXX进行装饰器修饰&#xff0c;后面的XXX的不同&#xff0c;在pytest中有不同的作 用&#xff0c;其整体使用相对复杂&#xff0c;我们单独将其抽取出来做详细的讲解。 2.pytest.mark.skip()/skipif()跳过用例 import pytest #无条…...

[Android] GKD v1.10.3

[Android] GKD 链接&#xff1a;https://pan.xunlei.com/s/VOOwKvmwpLoLl7fLi6wJZKK-A1?pwd8mey# GKD&#xff08;详情请戳 作者项目地址&#xff09;是一款免费开源简洁多规则的自动跳过广告的软件&#xff0c;整体基于kotlin开发&#xff0c;免root即可使用。简而言之&am…...

C22-作业练习之最大公约数与最小公倍数

作业练习之最大公约数与最小公倍数 代码 #include <stdio.h> int main() {//变量初始化int m,n;int i,gcd,lcm;//数据录入printf("请输入两个整数:");scanf("%d %d",&m,&n);//求最大公约数int min(m<n)?m:n; //找m与n的最小值for(imi…...

信号完整性简介第一篇

本章将讲述信号完整性相关问题。首先提出什么是高速系统设计中的信号完整性&#xff0c;其次结合影响信号完整性的各种因素&#xff0c;深入讨论在高速系统设计过程中会碰到的几类信号完整性问题&#xff0c;并对每一类问题提出相应的预防措施和解决方案。 需要说明&#xff0…...

Qt开发环境的安装与问题的解决(2)

文章目录 1. Qt开发环境安装的说明2. 通过安装包进行安装3. 通过在线下载程序 解决问题下载 https....网路错误问题解决开始安装--第一部分开始安装--第二部分 4. 建议配置环境变量&#xff08;非必须&#xff09;配置环境变量的意义 简介&#xff1a;这篇文章主要分享Qt开发环…...

STM32 ADC模数转换器

一、ADC简介 ADC&#xff08;Analog-Digital Converter&#xff09;模拟-数字转换器ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量&#xff0c;建立模拟电路到数字电路的桥梁12位逐次逼近型ADC&#xff0c;1us转换时间 输入电压范围&#xff1a;0~3.3V&#x…...

World of Warcraft [CLASSIC] Hunter[Grandel] R12

World of Warcraft [CLASSIC] Hunter[Grandel] R12 R13&#xff0c;[Freeblue] 可惜当时没有截图&#xff0c;唉&#xff0c;没有纪念 --- 挂机脚本...

kalibr:相机模型

文章目录 📚简介Kalibr标定支持的相机模型及适用场景📌 针孔相机模型(Pinhole)🌐 全向相机模型(Omnidirectional)🔍 特殊模型💡 选型建议⚠️ 注意事项📚简介 Kalibr作为多传感器标定的重要工具,支持多种相机模型以适应不同光学特性的视觉传感器。其核心相机…...

【AI News | 20250428】每日AI进展

AI Repos 1、dyad Dyad 是一款免费开源的本地化 AI 应用开发工具&#xff0c;兼容 Windows 和 Mac 双平台。支持使用自有 API 密钥灵活调用主流 AI 模型&#xff08;包括 Gemini、GPT-4.1、Claude 等&#xff09;&#xff0c;内置数据库与身份验证系统可快速构建完整应用。 …...

DNS区域的类型

在BIND9中&#xff0c;type 用于定义DNS区域的类型&#xff0c;不同的类型决定了BIND如何处理该区域的DNS数据。以下是主要的类型及其作用详解&#xff1a; 1. master&#xff08;主区域&#xff09; 作用&#xff1a; 表示该区域是权威DNS服务器的主副本&#xff0c;负责存储…...

​​HTTP vs HTTPS:传输协议的安全演进与核心差异​

HTTP&#xff08;HyperText Transfer Protocol&#xff09;和HTTPS&#xff08;HTTP Secure&#xff09;作为两种最常用的协议&#xff0c;其安全性和实现方式直接关系到用户隐私和数据完整性。 目录 ​​一、HTTP与HTTPS的基础概念​​ ​​二、HTTP与HTTPS的核心差异​​ ​…...

Android平台Unity引擎的Mono JIT机制分析

一、分析背景 Unity引擎开发游戏采用了C#语言,Unity采用了Mono的Jit机制实现C#逻辑代码动态编译和执行,Mono属于开源的工程,可通过查看Mono源码了解其中的处理。本文针对Mono的Jit动态编译和执行的机制进行分析,更好的了解Unity引擎在Android平台所采用的处理方式。 二、M…...

【java】接口

一、定义 1.接口中所有方法都是抽象方法和公共方法&#xff08;可以省略 abstract、public&#xff09;&#xff0c;不可以有正常的方法&#xff0c;所有变量都是全局静态常量 2.能继承接口的只能是接口 3.接口和类的关系通过实现&#xff08;重写&#xff08;实现&#xff09;…...

Vuex(二) —— 用Vuex完成购物车案例

目录 需求需求分析 组件分析组件通信 开发 准备环境准备模块结构商品列表组件 展示商品列表添加购物车 我的购物车组件 购物车列表商品数量和统计功能删除购物车商品 购物车列表组件 购物车列表全选操作数字加减并统计小计删除功能统计总数量和总钱数处理金额小数的问题 本地存…...

数字孪生的浪潮:从虚拟镜像到现实世界的 IT 变革

文章目录 数字孪生的本质&#xff1a;物理与虚拟的实时镜像数字孪生的演进&#xff1a;从工业试验到全行业热潮核心技术&#xff1a;数字孪生的基石与工具链物联网&#xff08;IoT&#xff09;&#xff1a;数据采集云计算与大数据&#xff1a;模型存储AI 与机器学习&#xff1a…...