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

【Leetcode 每日一题】2364. 统计坏数对的数目

问题背景

给你一个下标从 0 0 0 开始的整数数组 n u m s nums nums。如果 i < j i < j i<j j − i ≠ n u m s [ j ] − n u m s [ i ] j - i \ne nums[j] - nums[i] ji=nums[j]nums[i],那么我们称 ( i , j ) (i, j) (i,j) 是一个 坏数对
请你返回 n u m s nums nums坏数对 的总数目。

数据约束

  • 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 ] ≤ 1 0 9 1 \le nums[i] \le 10 ^ 9 1nums[i]109

解题过程

j − i ≠ n u m s [ j ] − n u m s [ i ] j - i \ne nums[j] - nums[i] ji=nums[j]nums[i] 可以变形为 n u m s [ i ] − i ≠ n u m s [ j ] − j nums[i] − i \ne nums[j] − j nums[i]i=nums[j]j,这在形式上就和 好数对的数目 很像了,可以用类似的方式解决。

具体实现

class Solution {public long countBadPairs(int[] nums) {int n = nums.length;long res = 0;Map<Integer, Integer> count = new HashMap<>();for (int i = 0; i < n; i++) {int cur = nums[i] - i;int num = count.getOrDefault(cur, 0);res += num;count.put(cur, num + 1);}return (long) n * (n - 1) / 2 - res;}
}
http://www.dtcms.com/a/140414.html

相关文章:

  • 关于hadoop和yarn的问题
  • Hadoop的三大结构及各自的作用?
  • 刀片服务器的散热构造方式
  • 游戏APP如何抵御DDoS攻击与黑客勒索?实战防护全攻略
  • 物联网分层架构全解析:从感知到应用的智能生态构建
  • day45——非递减数列(LeetCode-665)
  • Spring Boot启动流程深度解析:从main()到应用就绪的完整旅程
  • 设计模式之工厂方法模式
  • 获取印度股票市场列表、查询IPO信息以及通过WebSocket实时接收数据
  • 青少年编程与数学 02-016 Python数据结构与算法 28课题、图像处理算法
  • 人像面部关键点检测
  • 【路由交换方向IE认证】BGP选路原则之AS-Path属性
  • 基于autoware1.14的实车部署激光雷达循迹,从建图、定位、录制轨迹巡航点、到实车运行。
  • MySQL+Redis实战教程:从Docker安装部署到自动化备份与数据恢复20250418
  • MCP协议量子加密实践:基于QKD的下一代安全通信(2025深度解析版)
  • 服务器架构:SMP、NUMA、MPP及Docker优化指南
  • Oracle 19c新特性:OCP认证考试与职业跃迁的关键?
  • 日本公司如何实现B2B商城订货系统的自动化和个性化?
  • 珈和科技:无人机技术赋能智慧农业,精准施肥与病虫害监控全面升级
  • STM32F103_HAL库+寄存器学习笔记18 - CAN接收溢出中断
  • win10 应用市场 开发
  • 【java 13天进阶Day04】常用API、正则表达式,泛型、Collection集合API
  • P10416 [蓝桥杯 2023 国 A] XYZ
  • 关于yarn和hadoop
  • STM32 HAL库 Freertos队列使用解析
  • 深入理解红黑树:原理、实现与应用
  • 02.diboot项目分析
  • 【数据结构与算法】——插入排序
  • 论文阅读:2023 arxiv Safe RLHF: Safe Reinforcement Learning from Human Feedback
  • Spring Boot日志系统详解:Logback与SLF4J的默认集成