【Java|golang】1814. 统计一个数组中好对子的数目

news2024/10/5 16:24:19

给你一个数组 nums ,数组中只包含非负整数。定义 rev(x) 的值为将整数 x 各个数字位反转得到的结果。比方说 rev(123) = 321 , rev(120) = 21 。我们称满足下面条件的下标对 (i, j) 是 好的 :

0 <= i < j < nums.length
nums[i] + rev(nums[j]) == nums[j] + rev(nums[i])
请你返回好下标对的数目。由于结果可能会很大,请将结果对 109 + 7 取余 后返回。

示例 1:

输入:nums = [42,11,1,97]
输出:2
解释:两个坐标对为:

  • (0,3):42 + rev(97) = 42 + 79 = 121, 97 + rev(42) = 97 + 24 = 121 。
  • (1,2):11 + rev(1) = 11 + 1 = 12, 1 + rev(11) = 1 + 11 = 12 。
    示例 2:

输入:nums = [13,10,35,24,76]
输出:4

提示:

1 <= nums.length <= 105
0 <= nums[i] <= 109

public int countNicePairs(int[] nums) {
        Map<Integer, Integer> map = new HashMap<>();
        for (int num : nums) {
            int oldNum=num;
            int temp=0;
            while (num>0){
                temp=temp*10+num%10;
                num/=10;
            }
            oldNum-=temp;
            map.put(oldNum,map.getOrDefault(oldNum,0)+1);
        }
        int result=0;
        for (Integer value : map.values()) {
            result+=((long)value*(value-1)/2)%1000000007;
        }
        return result%1000000007;
    }

在这里插入图片描述

func countNicePairs(nums []int) int {
	mapX := make(map[int]int, 0)
	for _, num := range nums {
		temp,oldNum:=0,num
		for num>0{
			temp=temp*10+num%10
			num/=10
		}
		oldNum-=temp
	    mapX[oldNum]++
	}
	result:=0
	for _, v := range mapX {
		result+=int((int64(v)*int64(v-1)/2)%1000000007)
	}
	return result%1000000007
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/168791.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

算法之美~时间复杂度

时间复杂度 时间复杂度的全称是渐进时间复杂度&#xff0c;表示算法的执行时间与数据规模之间的增长关系1、只关注循环执行次数最多的一段代码2、加法法则&#xff1a;总复杂度等于量级最大的那段代码的复杂度3、乘法法则&#xff1a;嵌套代码的复杂度等于嵌套内外代码复杂度的…

文末有福利 | 零代码连接邮箱腾讯云企业网盘,附件管理超轻松

在日常工作中&#xff0c;想必大家每天都会收到各种各样的工作邮件&#xff0c;并且很多重要的文件材料也是通过邮件附件的形式来传输的&#xff0c;那么如何一站式管理这些文件&#xff0c;对于提高办公效率就至关重要了。关于邮件附件&#xff0c;相信大家也都碰到过这样的困…

【软件相关】Typora配置图片上传

文章目录0 前言1 确定需求2 开始配置2.1 软件储备2.2 插件安装2.3 gitee配置3 其他配置3.1 获取SMMS token参考链接0 前言 对于喜欢写Markdown文档的人来说&#xff0c;Typora无疑是一个写作利器&#xff0c;它有别于其他的Markdown软件&#xff0c;不是一边编辑一边渲染&#…

excel区分工时制度:如何计算996与955的工时差异

什么是996呢&#xff1f;是指早上9点上班&#xff0c;晚上9点下班&#xff0c;中午和晚上各有1小时吃饭时间&#xff0c;每周工作6天的工作模式。而955&#xff0c;也就是朝九晚五&#xff0c;中午就餐在工作时间内&#xff0c;但不能休息&#xff0c;共计8小时工作时间&#x…

[FUNC]在AHK中实现Pyhton的range函数

本文是用AutoHotkey复刻Python的range函数函数语法range(start, stop, step)参数说明&#xff1a;参数描述start计数从 start 开始。默认是从 0 开始。例如&#xff1a;range&#xff08;6&#xff09;等价于range(0,6)。stop计数到 stop 结束&#xff0c;但不包括 stop。例如&…

5、Ubuntu20常用操作_进程管理重定向和管道常用命令网络管理

进程管理 进程的概念 大家比较熟悉 Windows 下的可执行文件&#xff0c;就是那些扩展名为exe的文件。 大家知道&#xff0c;只需要鼠标双击这些程序&#xff0c; 就可以运行了。 程序运行起来后&#xff0c;我们把这个程序正在运行的 实例 称之为 进程 。 操作系统对每个进…

acwing86场周赛题解(模拟,dp,数学推导式)

目录 第一题&#xff1a;AcWing 4794. 健身 思路 核心代码 完整代码 第二题&#xff1a;4795. 安全区域 思路 核心代码 完整代码 第三题&#xff1a;4796. 删除序列 思路 核心代码 完整代码 谢谢您的阅读 第一题&#xff1a;AcWing 4794. 健身 4794. 健身 李华…

配置与管理DNS服务器

DNS概念 DNS是一种新的主机名称和IP地址转换机制&#xff0c;使用分层的分布式数据库来处理Internet上众多的主机和IP地址转换。当一个应用需要将域名翻译成为IP地址时&#xff0c;这个应用便成为域名系统的一个客户。这个客户将待翻译的域名放在一个DNS请求信息中&#xff0c;…

CHAPTER 10 Web服务与应用(二)

Web服务与应用10.1 Tomcat10.1.1 准备工作10.1.2 编写dockerfile10.1.3 创建tomcat用户和密码脚本文件10.1.4 编写启动脚本10.1.5 创建和测试镜像10.1.6 相关资源10.2 Jetty10.2.1 使用官方镜像10.2.2 相关资料10.3 LAMP10.3.1 使用官方镜像10.4 持续开发与管理10.4.1 Jenkins及…

[前端笔记——HTML介绍] 5.文档与网站架构

[前端笔记——HTML介绍] 5.文档与网站架构1.文档的基本组成部分&#xff08;1&#xff09;页眉&#xff08;2&#xff09;导航栏&#xff08;3&#xff09;主内容&#xff08;4&#xff09;侧边栏&#xff08;5&#xff09;页脚2.用于构建内容的HTML3.HTML布局元素细节3.1无语义…

205:vue+openlayer: 点击某feature,列表滑动,定位到相应的点的列表位置

第205个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+openlayers做一个互动,点击某个feature,在左侧的列表中显示出来,滚动条滑动,能显示在视觉区内。 直接复制下面的 vue+openlayers源代码,操作2分钟即可运行实现效果; 注意如果OpenStreetMap无法加载,请加载其…

HTB打靶(Active Directory 101 Resolute)

nmap扫描 nmap -A -T4 10.10.10.169 Starting Nmap 7.93 ( https://nmap.org ) at 2023-01-16 01:30 EST Stats: 0:00:04 elapsed; 0 hosts completed (1 up), 1 undergoing SYN Stealth Scan SYN Stealth Scan Timing: About 74.65% done; ETC: 01:30 (0:00:01 remaining) St…

Maven学习(一):Maven简介及安装配置

Maven简介及安装配置一、Maven简介1.1、Maven是什么1.2、Maven的作用二、Maven安装配置2.1、大前提2.2、Maven下载2.3、windows版1、安装2、配置环境3、配置本地仓库2.4、mac版1、安装2、配置环境3、需要注意的点4、配置本地仓库一、Maven简介 1.1、Maven是什么 先对Maven做一…

从 Spectral Clustring 推导到 Regularized Diffusion Process

Spectral Clustring 参考&#xff1a;bilibili 机器学习-白板推导系列(二十二)-谱聚类&#xff08;Spectral Clustering&#xff09; Background 首先看一种数据分布&#xff1a; 对于以上分布的数据&#xff0c;可以直接利用K−meansK-meansK−means或者GMM&#xff08;高…

2、linux_CentOS_6_64位常用命令远程操作--yum云用不了_建议学习Ubuntu

Linux的概述 学习Linux之前先了解Unix Unix是一个强大的多用户、多任务操作系统。于1969年在AT&T的贝尔实验室开发。UNIX的商标权由国际开放标准组织&#xff08;The Open Group&#xff09;所拥有。UNIX操作系统是商业版&#xff0c;需要收费&#xff0c;价格比Microsof…

洞悉获客之道,林肯汽车开展高端社区精准营销俘获消费者芳心

一、出场即焦点 全新领航员诠释顶级美式豪华“强大的外部气场&#xff0c;肌肉与优雅完美结合”&#xff0c;一直以来&#xff0c;美式豪华汽车以沉稳、古典的高端奢华气质演绎“出场即焦点”的恢弘气场&#xff0c;吸引着无数精英人士为之着迷、追捧。2022 年&#xff0c;林肯…

C/C++宏定义注意事项

宏定义后不能加“&#xff1b;”&#xff0c;如果想查找宏可能带来的bug,可以增加编译选项&#xff1a;/P&#xff0c;然后选择仅编译&#xff0c; 这时会生成*.i的文件&#xff0c;打开后可以看到编译器替换宏以后的实际内容&#xff0c;然后再去查看相关的替换有没有错误。带…

夏普MX-M2658N复印机显示请放入载体组件

故障描述: 一台夏普MX-M2658N复印机一开机就显示请放入载体组件,重新再次开机有可能不显示但是复印或打印的时候一定会卡纸,卡纸有时候卡在硒鼓附近或者加热组件的位置; 故障处理: 1、碳粉质量差; 2

fiddler的自动响应器_小实验

目录 一、小实验介绍 二、fiddler的自动响应器的应用 1.找对自动响应器的位置&#xff0c;添加规则 2.编辑规则&#xff0c;将这个请求用fiddler的内置响应&#xff1b; 3.编辑规则&#xff0c;将这个请求重定向到本地资源&#xff1b; 4.编辑响应 一、小实验介绍 承接上…

【自学Docker 】Docker ps命令

Docker ps命令 大纲 Docker ps命令概述 docker ps 命令可以用来列出 Docker容器 相关信息。 Docker ps命令语法 haicoder(www.haicoder.net)# docker ps [OPTIONS]Docker ps命令参数 选项说明无参默认显示正在运行的容器。-a显示所有的容器&#xff0c;包括未运行的。-f根…