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

【Leetcode 每日一题 - 补卡】2537. 统计好子数组的数目

问题背景

给你一个整数数组 n u m s nums nums 和一个整数 k k k,请你返回 n u m s nums nums 子数组的数目。
一个子数组 a r r arr arr 如果有 至少 k k k 对下标 ( i , j ) (i, j) (i,j) 满足 i < j i < j i<j a r r [ i ] = a r r [ j ] arr[i] = arr[j] arr[i]=arr[j],那么称它是一个 子数组。
子数组 是原数组中一段连续 非空 的元素序列。

数据约束

  • 1 ≤ n u m s . l e n g t h ≤ 1 0 5 1 \le nums.length \le 10 ^ 5 1nums.length105
  • 1 ≤ n u m s [ i ] , k ≤ 1 0 9 1 \le nums[i], k \le 10 ^ 9 1nums[i],k109

解题过程

要求不同的相等数对数量达到某个下限,显然子数组中元素数量越多越有可能满足条件,标准的滑窗。

具体实现

class Solution {public long countGood(int[] nums, int k) {long res = 0;Map<Integer, Integer> map = new HashMap<>();int count = 0;for (int left = 0, right = 0; right < nums.length; right++) {count += map.merge(nums[right], 1, Integer::sum) - 1;while (count >= k) {count -= map.merge(nums[left], -1, Integer::sum);left++;}res += left;}return res;}
}

相关文章:

  • 【Kubernetes基础--Service深入理解】--查阅笔记4
  • LeetCode【剑指offer】系列(位运算篇)
  • 观察者模式:从博客订阅到消息队列的解耦实践
  • 【面试向】梯度消失和梯度爆炸,激活函数?权重初始化?归一化?
  • Actor-Critic(演员评论家算法)基础解析与代码实例:稳定倒立摆
  • Mac idea WordExcel等文件git modify 一直提示修改状态
  • NoSQL 与 NewSQL 全面对比:如何选择适合你的数据库方案?
  • 1.Axum 与 Tokio:异步编程的完美结合
  • 聊聊Spring AI Alibaba的PdfTablesParser
  • 机器学习简介
  • 【LeetCode Solutions】LeetCode 166 ~ 169 题解
  • vue2.x Echart label根据数据长度选择不同的间隔显示
  • VSTO幻灯片退出播放(C#模拟键盘鼠标的事件)
  • 股指期货怎样选择换月时点?
  • [GESP202409 二级] 小杨的 N 字矩阵 题解
  • 学习笔记十五——rust柯里化,看不懂 `fn add(x) -> impl Fn(y)` 的同学点进来!
  • Oracle--安装Oracle Database23ai Free
  • .net core 项目快速接入Coze智能体-开箱即用-全局说明
  • 第二十四天 - 分布式任务队列 - Celery高级应用 - 练习:分布式监控任务系统
  • Linux 入门指令(2)
  • 欧洲观察室|欧盟对华战略或在中欧建交50年时“低开高走”
  • 4年间职务侵占、受贿逾亿元,北京高院:严惩民企内部腐败
  • LPR名副其实吗?如果有所偏离又该如何调整?
  • 解读|战国子弹库帛书漂泊海外79年今归国,追索仍将继续
  • 缅甸发生5.0级地震
  • 美国考虑让移民上真人秀竞逐公民权,制片人称非现实版《饥饿游戏》