当前位置: 首页 > 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;}
}

相关文章:

  • 关于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接收溢出中断
  • 外卖江湖战火重燃,骑手、商家、消费者在“摇摆”什么?
  • 全国人大常委会启动工会法执法检查
  • 41岁知名学者陈昊因病骤然离世,北大再发讣告缅怀
  • 纪念沈渭滨︱“要把近代史搞得会通”——读《士与大变动时代》随札
  • 江苏一季度实现地区生产总值3.3万亿元,同比增长5.9%
  • 央行等:在上海试点通过再贴现窗口支持人民币跨境贸易融资