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

【Leetcode 每日一题】2176. 统计数组中相等且可以被整除的数对

问题背景

给你一个下标从 0 0 0 开始长度为 n n n 的整数数组 n u m s nums nums 和一个整数 k k k,请你返回满足 0 ≤ i < j < n 0 \le i < j < n 0i<j<n n u m s [ i ] = n u m s [ j ] nums[i] = nums[j] nums[i]=nums[j] ( i × j ) (i \times j) (i×j) 能被 k k k 整除的数对 ( i , j ) (i, j) (i,j)数目

数据约束

  • 1 ≤ n u m s . l e n g t h ≤ 100 1 \le nums.length \le 100 1nums.length100
  • 1 ≤ n u m s [ i ] , k ≤ 100 1 \le nums[i], k \le 100 1nums[i],k100

解题过程

这题数据范围不大,暴力枚举也能过。
一种更好的做法,是将值像等的元素都保存在链表中,遍历时就只需要判断能否整除了。

具体实现

class Solution {public int countPairs(int[] nums, int k) {int n = nums.length;int res = 0;ListNode[] map = new ListNode[110];for (int i = 0; i < n; i++) {ListNode cur = new ListNode(i);ListNode pre = map[nums[i]];if (pre != null) {cur.next = pre;}while (pre != null) {if (i * pre.index % k == 0) {res++;}pre = pre.next;}map[nums[i]] = cur;}return res;}
}class ListNode {int index;ListNode next;ListNode(int index) {this.index = index;next = null;}
}

相关文章:

  • 快速上手,OceanBase + MCP + LLM,搭建 AI 应用
  • 指形铣刀的结构
  • Vue3+Vite+TypeScript+Element Plus开发-20.按钮权限
  • JavaScript-立即执行函数(Immediately Invoked Function Expression,IIFE)
  • 大模型在胃十二指肠溃疡预测及诊疗方案制定中的应用研究
  • 大M法处理非线性约束线性化
  • C语言数据类型取值范围
  • DataInputStream 终极解析与记忆指南
  • 期货跟单软件云端部署的重要性
  • 足球AI模型:一款用数据分析赛事的模型
  • vue入门:路由 router
  • 深度理解指针之例题
  • LeetCode算法题(Go语言实现)_51
  • 2025年考取特种设备安全管理 A 证,开启职业新征程
  • 依赖文件导入不进来
  • 科学视角下的打坐:身心获益的实证探究
  • 三款注册表清理工具
  • 深度学习模型
  • 非阻塞I/O操作
  • 什么是智算中心
  • 解放日报:持续拿出排头兵姿态先行者担当
  • 巴西外长维埃拉:国际形势日益复杂,金砖国家必须发挥核心作用
  • 【社论】人工智能,年轻的事业
  • 打造全域消费场景,上海大世界百个演艺娱乐新物种待孵化
  • ​关键词看中国经济“一季报”:韧,长期向好看底气
  • 全国电影工作会:聚焦扩大电影国际交流合作,提升全球影响力