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

【Leetcode 1512 】 好数对的数目—— 数组模拟哈希表 与 等差数列求和

给你一个整数数组 nums 。

如果一组数字 (i,j) 满足 nums[i] == nums[j] 且 i < j ,就可以认为这是一组 好数对 。

返回好数对的数目。

示例 1:

输入:nums = [1,2,3,1,1,3]
输出:4
解释:有 4 组好数对,分别是 (0,3), (0,4), (3,4), (2,5) ,下标从 0 开始

示例 2:

输入:nums = [1,1,1,1]
输出:6
解释:数组中的每组数字都是好数对

示例 3:

输入:nums = [1,2,3]
输出:0

数组模拟哈希表 与 等差数列求和

// 数组模拟哈希表 与 等差数列求和
function numIdenticalPairs(nums: number[]): number {
  const arr = Array(101).fill(0);
  for (const n of nums) {
    arr[n]++;
  }
  //等差数列求和
  return arr.reduce((pre, cur) =>
    cur === 0 ? pre : (pre += (cur * (cur - 1)) / 2)
  );
}

哈希表

// 哈希表
function numIdenticalPairs2(nums: number[]): number {
  const map = new Map();
  let res = 0;
  for (const n of nums) {
    map.set(n, (map.get(n) || 0) + 1);
    if (map.get(n) > 1) {
      res += map.get(n) - 1;
    }
  }
  return res;
}

相关文章:

  • Pandas DataFrame 数据转换处理和多条件查询
  • Spring Boot 实现定时任务
  • 设计模式——策略模式
  • 地平线—征程2(Journey 2-J2)芯片详解(15)—看门狗+温度传感器
  • Android Audio
  • Midjourney进阶-反推与优化提示词(案例实操)
  • LeetCode练习30
  • 用阿里云“无影”搭建《黑神话:悟空》电脑环境
  • OSPF配置学习笔记
  • vue项目实现postcss-pxtoremvue大屏适配
  • Modbus-TCP——Libmodbus安装和使用(Ubuntu22.04)
  • 【商城小程序功能概览】
  • 二十二、状态模式
  • 中国社科院-新加坡社科大学商学院联合培养管理学博士
  • 上海晋名气瓶暂存柜助力高校气瓶安全储存
  • 2024UI自动化面试题汇总【建议收藏】
  • 进阶岛 - InternVL 多模态模型部署微调实践
  • 鸿蒙--ArkTS
  • 【开发语言】编译型语言和解释性语言有啥区别?
  • 计算机存储原理——基础
  • 水利部:山西、陕西等地旱情将持续
  • 华为招聘:未与任何第三方开展过任何形式的实习合作
  • 央行行长:未来还可以扩大结构性货币政策工具规模或创设新的政策工具
  • 李云泽:大型保险集团资本补充已经提上日程
  • 巴基斯坦军方:印度导弹袭击已造成至少3死14伤
  • 蓝佛安:中方将采取更加积极有为的宏观政策,有信心实现2025年的5%左右增长目标