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

好数对的数目

题目描述
给你一个整数数组 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

思路与解法
这道题目要求我们找出满足 nums[i] == nums[j] 且 i < j 的所有数对。对于每个出现过的数,我们可以利用哈希表来统计它出现的次数,然后通过组合的方式计算好数对的数量。

假设某个数出现了 k 次,那么从中任选两个位置作为数对的数量就是 C(k, 2) = k * (k - 1) / 2。我们可以通过统计每个数的出现次数来逐步累加好数对的数量。

代码实现
python
复制
编辑
from collections import defaultdict
from typing import List

class Solution:
def numIdenticalPairs(self, nums: List[int]) -> int:
res = 0
cnt = defaultdict(int)

    # 遍历数组,统计每个数字出现的次数for x in nums:res += cnt[x]cnt[x] += 1return res

代码解释
哈希表 cnt:用于统计每个数字出现的次数。

累加好数对:每次遇到一个数字 x,我们增加 cnt[x],表示当前数字 x 之前已经出现了多少次。然后更新 cnt[x] 的次数。

返回结果:返回最终的好数对数量。

时间复杂度
时间复杂度为 O(n),其中 n 是数组 nums 的长度。我们遍历一次数组并进行常数时间的哈希操作。

相关文章:

好数对的数目

题目描述 给你一个整数数组 nums。 如果一组数字 (i, j) 满足 nums[i] nums[j] 且 i < j&#xff0c;就可以认为这是一组 好数对。 返回 好数对 的数目。 示例 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3,1,1,3] 输出&#xff1a;4 解释&#xff1a; 有 4 组好…...

C++ STL编程-vector概念、对象创建

vector 概念&#xff1a;是常见的一种容器&#xff0c;被称为“柔性数组”。 在vector中&#xff0c;front()是数组中的第一个元素&#xff0c;back()是数组的最后一个元素。begin()是是指向第一个元素&#xff0c;end()是指向back()的后一个元素 vector的对象创建&#xff0…...

RUI电视桌面中文版:下载安装教程及桌面固件包获取全攻略

在智能电视的使用过程中&#xff0c;一款出色的桌面系统能极大提升用户体验&#xff0c;RUI电视桌面中文版就是这样一个不错的选择。下面为大家详细介绍RUI电视桌面中文版的下载安装教程以及桌面固件包的获取方法。 一、桌面固件包获取 首先是获取桌面固件包。可以通过RUI官方…...

OpenAI 34页最佳构建Agent实践

penAI发布O4&#xff0c;也发布34页最佳构建Agent实践&#xff0c;值得阅读。 什么是Agent&#xff1f; 传统软件使用户能够简化和自动化工作流程&#xff0c;而代理能够以高度独立的方式代表用户执行相同的工作流程。 代理是能够独立地代表您完成任务的系统。 工作流程是必…...

HOOPS Exchange 与HOOPS Communicator集成:打造工业3D可视化新标杆!

一、概述 在工业3D开发、BIM建筑、数字孪生和仿真分析等高端应用场景中&#xff0c;数据格式复杂、模型体量庞大、实时交互体验要求高&#xff0c;一直是困扰开发者的难题。Tech Soft 3D旗下的HOOPS Exchange和HOOPS Communicator&#xff0c;正是解决这类问题的黄金搭档。二者…...

C#进阶学习(六)单向链表和双向链表,循环链表(下)循环链表

目录 &#x1f4ca; 链表三剑客&#xff1a;特性全景对比表 一、循环链表节点类 二、循环链表的整体设计框架 三、循环列表中的重要方法&#xff1a; &#xff08;1&#xff09;头插法&#xff0c;在头结点前面插入新的节点 &#xff08;2&#xff09;尾插法实现插入元素…...

后端程序员工作复盘(一)

1、工作不是为了解决问题&#xff0c;而是为了生活目标。 2、不能当救火队员&#xff0c;要提前预防问题的产生、避免问题的出现。 3、后端表设计和接口设计&#xff0c;要考虑到扩展性&#xff0c;要灵活。无论页面如何变动&#xff0c;后端的改动量都最小&#xff0c;要以不…...

禅道部署进阶指南:从搭建到高可用,全程打怪升级!

禅道在生产环境中的更专业部署方案,包括 Linux 服务器部署、Docker 安装方案、性能优化、安全建议和常见企业级集成方式,适合团队使用或对稳定性、安全性有较高要求的项目。 ✅ 一、企业级部署方案(适合 Linux 环境) 🖥 环境要求 操作系统:CentOS 7+/Ubuntu 18+(推荐)…...

文章记单词 | 第36篇(六级)

一&#xff0c;单词释义 wit [wɪt] n. 智慧&#xff1b;才智&#xff1b;机智&#xff1b;风趣的人dreadful [ˈdredfl] adj. 糟糕透顶的&#xff1b;可怕的&#xff1b;令人畏惧的innocent [ˈɪnəsnt] adj. 无辜的&#xff1b;天真无邪的&#xff1b;无罪的&#xff1b;无…...

Unity使用Newtonsoft.Json本地化存档

我是标题 1.依赖包2.原理&#xff1a;3.代码4.可用优化5.数据加密 1.依赖包 Newtonsoft请在PacakgeManager处下载。 参考&#xff1a;打工人小棋 2.原理&#xff1a; 把要存储的对象数据等使用JsonConvert.SerializeObject(object T)进行序列化为字符串&#xff0c;并且通过…...

Java研学-MybatisPlus(一)

一 概述 MyBatis-Plus&#xff08;简称 MP&#xff09;是一款基于 MyBatis 的增强工具&#xff0c;旨在简化开发、提高效率。它在保留 MyBatis 所有特性的基础上&#xff0c;提供了丰富的功能&#xff0c;减少了大量模板代码的编写。 1 核心特性&#xff1a; ① 无侵入增强&am…...

2025年03月中国电子学会青少年软件编程(Python)等级考试试卷(六级)真题

青少年软件编程&#xff08;Python&#xff09;等级考试试卷&#xff08;六级&#xff09; 分数&#xff1a;100 题数&#xff1a;38 答案解析&#xff1a;https://blog.csdn.net/qq_33897084/article/details/147341458 一、单选题(共25题&#xff0c;共50分) 1. 在tkinter的…...

OpenVINO怎么用

目录 OpenVINO 简介 主要组件 安装 OpenVINO 使用 OpenVINO 的基本步骤 OpenVINO 简介 OpenVINO&#xff08;Open Visual Inference and Neural Network Optimization&#xff09;是英特尔推出的一个开源工具包&#xff0c;旨在帮助开发者在英特尔硬件平台上高效部署深度学…...

欧拉服务器操作系统安装MySQL

1. 安装MySQL服务器​​ 1. 更新仓库缓存 sudo dnf makecache2. 安装MySQL sudo dnf install mysql-server2. 初始化数据库​ sudo mysqld --initialize --usermysql3. 启动数据库服务 # 启动服务 sudo systemctl start mysqld# 设置开机自启 sudo systemctl enable mysql…...

【零基础】基于 MATLAB + Gurobi + YALMIP 的优化建模与求解全流程指南

MATLAB Gurobi YALMIP 综合优化教程&#xff08;进阶&#xff09; 本教程系统介绍如何在 MATLAB 环境中使用 YALMIP 建模&#xff0c;并通过 Gurobi 求解器高效求解线性、整数及非线性优化问题。适用于工程、运营研究、能源系统等领域的高级优化建模需求。 一、工具概览 1.…...

Python 浮点数运算之谜:深入解析round(0.675, 2)等输出异常

一、问题背景&#xff1a;当浮点数运算遇见 “反直觉” 结果 在 Python 开发中&#xff0c;以下代码输出常让开发者困惑&#xff1a; print(round(0.675, 2)) # 预期0.67&#xff0c;实际0.68||预期0.68&#xff0c;实际0.67 print(0.1 0.2) # 预期0.3&…...

【C#】Html转Pdf,Spire和iTextSharp结合,.net framework 4.8

&#x1f339;欢迎来到《小5讲堂》&#x1f339; &#x1f339;这是《C#》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解。&#x1f339; &#x1f339;温馨提示&#xff1a;博主能力有限&#xff0c;理解水平有限&#xff0c;若有不对之处望指正&#xff01;&#…...

极狐GitLab 注册限制如何设置?

极狐GitLab 是 GitLab 在中国的发行版&#xff0c;关于中文参考文档和资料有&#xff1a; 极狐GitLab 中文文档极狐GitLab 中文论坛极狐GitLab 官网 注册限制 (BASIC SELF) 您可以对注册实施以下限制&#xff1a; 禁用新注册。新注册需要管理员批准。需要用户电子邮件确认。…...

利用大模型实现地理领域文档中英文自动化翻译

一、 背景描述 在跨国性企业日常经营过程中&#xff0c;经常会遇到专业性较强的文档翻译的需求&#xff0c;例如法律文书、商务合同、技术文档等&#xff1b;以往遇到此类场景&#xff0c;企业内部往往需要指派专人投入数小时甚至数天来整理和翻译&#xff0c;效率低下&#x…...

SGFormer:卫星-地面融合 3D 语义场景补全

论文介绍 题目&#xff1a;SGFormer: Satellite-Ground Fusion for 3D Semantic Scene Completion 会议&#xff1a;IEEE / CVF Computer Vision and Pattern Recognition Conference 论文&#xff1a;https://www.arxiv.org/abs/2503.16825 代码&#xff1a;https://githu…...

Trinity三位一体开源程序是可解释的 AI 分析工具和 3D 可视化

一、软件介绍 文末提供源码和程序下载学习 Trinity三位一体开源程序是可解释的 AI 分析工具和 3D 可视化。Trinity 提供性能分析和 XAI 工具&#xff0c;非常适合深度学习系统或其他执行复杂分类或解码的模型。 二、软件作用和特征 Trinity 通过结合具有超维感知能力的不同交…...

城市街拍暗色电影胶片风格Lr调色教程,手机滤镜PS+Lightroom预设下载!

调色介绍 城市街拍暗色电影胶片风格 Lr 调色&#xff0c;是借助 Adobe Lightroom 软件&#xff0c;为城市街拍的人像或场景照片赋予独特视觉风格的后期处理方式。旨在模拟电影胶片质感&#xff0c;营造出充满故事感与艺术感的暗色氛围&#xff0c;让照片仿佛截取于某部充满张力…...

【家政平台开发(55)】家政平台数据生命线:备份与恢复策略全解析

本【家政平台开发】专栏聚焦家政平台从 0 到 1 的全流程打造。从前期需求分析,剖析家政行业现状、挖掘用户需求与梳理功能要点,到系统设计阶段的架构选型、数据库构建,再到开发阶段各模块逐一实现。涵盖移动与 PC 端设计、接口开发及性能优化,测试阶段多维度保障平台质量,…...

加密和解密(大语言模型)

看到很多对matlab的p文件加密方案感兴趣的。网络上技术资料比较少&#xff0c;所以&#xff0c;我让大语言模型提供一些概论性质的东西&#xff0c;转发出来自娱自乐。期望了解p文件加密的复杂度&#xff0c;而不是一定要尝试挑战加密算法。 但根据大语言模型提供的材料&#…...

双轮驱动能源革命:能源互联网与分布式能源赋能工厂能效跃迁

在全球能源结构深度转型与“双碳”目标的双重驱动下&#xff0c;工厂作为能源消耗的主力军&#xff0c;正站在节能变革的关键节点。能源互联网与分布式能源技术的融合发展&#xff0c;为工厂节能开辟了全新路径。塔能科技凭借前沿技术与创新实践&#xff0c;深度探索能源协同优…...

React 更新 state 中的数组

更新 state 中的数组 数组是另外一种可以存储在 state 中的 JavaScript 对象&#xff0c;它虽然是可变的&#xff0c;但是却应该被视为不可变。同对象一样&#xff0c;当你想要更新存储于 state 中的数组时&#xff0c;你需要创建一个新的数组&#xff08;或者创建一份已有数组…...

ubantu18.04HDFS编程实践(Hadoop3.1.3)

说明&#xff1a;本文图片较多&#xff0c;耐心等待加载。&#xff08;建议用电脑&#xff09; 注意所有打开的文件都要记得保存。 第一步&#xff1a;准备工作 本文是在之前Hadoop搭建完集群环境后继续进行的&#xff0c;因此需要读者完成我之前教程的所有操作。 第二步&am…...

Spring Boot资源耗尽问题排查与优化

Spring Boot服务运行一段时间后新请求无法处理的问题。服务没有挂掉&#xff0c;也没有异常日志。思考可能是一些资源耗尽或阻塞的问题。 思考分析 首先&#xff0c;资源耗尽可能涉及线程池、数据库连接、内存、文件句柄或网络连接等。常见的如线程池配置不当&#xff0c;导致…...

优化WAV音频文件

优化 WAV 音频文件通常涉及 减小文件体积、提升音质 或 适配特定用途&#xff08;如流媒体、广播等&#xff09;。以下是分场景的优化方法&#xff0c;涵盖工具和操作步骤&#xff1a; 一、减小文件体积&#xff08;无损/有损压缩&#xff09; 1. 无损压缩 转换格式&#xff1…...

string函数具体事例

输出所有字串出现的位置 输入两个字符串A和B&#xff0c;输出B在A中出现的位置 输入 两行 第一行是一个含有空格的字符串 第二行是要查询的字串 输出 字串的位置 样例输入 I love c c python 样例输出 -1 样例输入 I love c c c 样例输出 8 12 #include<iostream> #inclu…...