LeetCode 1814. 统计一个数组中好对子的数目(哈希)

文章目录

    • 1. 题目
    • 2. 解题

1. 题目

给你一个数组 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])

请你返回好下标对的数目。由于结果可能会很大,请将结果对 10^9 + 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 <= 10^5
0 <= nums[i] <= 10^9

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/count-nice-pairs-in-an-array
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 条件等价于 nums[i] - rev(nums[i]) == nums[j] - rev(nums[j])
  • 使用 nums[i] - rev(nums[i]) 作为哈希的 key, 计算数量
  • 每个key内的组合都可以,Cn2C_n^2Cn2
class Solution {
public:int countNicePairs(vector<int>& nums) {long long n = nums.size(), ans = 0, mod = 1e9+7;;map<int, long long> m;for(int i = 0; i < n; i++) {int n = nums[i], rev = 0;while(n){rev = rev*10 + n%10;n /= 10;}m[nums[i]-rev]++;}for(auto it = m.begin(); it != m.end(); ++it){ans = (ans + it->second*(it->second-1)/2)%mod;}return ans;}
};

120 ms 44.2 MB C++


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
Michael阿明

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

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

相关文章

如何看当前windows是utf8还是gbk_监理工程师5月份出教材,现在如何备考?

监理工程师教材预计5月份出版&#xff0c;相信考生都知道监理工程师教材对于考生复习的重要性&#xff0c;那么现在考生应该如何学习呢?听小编给你说一说。教材没有发布之前怎么学习?教材改动比较大&#xff0c;没有发布之前我们就不要学习了么?小编不这么认为&#xff0c;监…

巧用Hint

一般计算fibonacci的方法&#xff1a; 1 def fibonacci (n): 2 if n 0 or n 1: 3 return 1 4 else: 5 return fibonacci(n-1) fibonacci(n-2) 这样的 call graph for fibonacci with n4: 当计算 fibonacci(30)的时候还可以&#xff0c;当计算 fibon…

LeetCode 1816. 截断句子

文章目录1. 题目2. 解题1. 题目 句子 是一个单词列表&#xff0c;列表中的单词之间用单个空格隔开&#xff0c;且不存在前导或尾随空格。每个单词仅由大小写英文字母组成&#xff08;不含标点符号&#xff09;。 例如&#xff0c;"Hello World"、"HELLO"…

脸书令牌怎么使用_网工知识角|QOS技术令牌桶算法一分钟速记,考试无忧

点上方蓝字关注公众号&#xff0c;坚持每天技术打卡学网络&#xff0c;就在IE-LAB国内最著名的高端网络工程师培养基地QOS是网络服务质量技术&#xff0c;是所有考试中都会有的考点&#xff0c;主要在SP的课程中详述&#xff0c;是高中低级的网工都有必要了解的技术。今天我们来…

LeetCode 1817. 查找用户活跃分钟数(哈希)

文章目录1. 题目2. 解题1. 题目 给你用户在 LeetCode 的操作日志&#xff0c;和一个整数 k 。 日志用一个二维整数数组 logs 表示&#xff0c;其中每个 logs[i] [IDi, timei] 表示 ID 为 IDi 的用户在 timei 分钟时执行了某个操作。 多个用户 可以同时执行操作&#xff0c;单…

日期传递过程_买东西别再只看生产日期和保质期了!快算算你一天吃了多少添加剂?...

开始今天的科普前&#xff0c;微医君先和大家讲一下我们办公室上周出现的“假”全麦面包事件。全麦面包是很多减肥人士最热衷的食物之一&#xff0c;小A也不例外。结果上周微医君帮她买面包时&#xff0c;就发现小A平时经常买的全麦面包是“假”的。为什么明明包装上写着“全麦…

第二次打开不是最大_舵手图解:大盘日线第二次形成买点信号

吾股舵手个人微信公众号&#xff1a;股民读书会&#xff08;ID&#xff1a;gumindushuihui&#xff09;声明&#xff1a;只做客观解读&#xff0c;不做主观预测&#xff0c;仅供参考&#xff0c;不作交易依据。择时看大盘&#xff0c;选股看行业。股票咨询请在文末留言。大盘涨…

Window phone用手机来控制电脑的多媒体播放

为了用电脑看电影时方便控制&#xff0c;我就突发其想&#xff0c;做一个手机app来通过无线网络远程调节电脑上的音量。后来进行尝试成功后&#xff0c;我就想&#xff0c;光是调音量似乎单调了些&#xff0c;就把播放/暂停&#xff0c;上一首&#xff0c;下一首&#xff0c;等…

华为正式发布鸿蒙智慧屏,5499 元、21999 元,2021 款华为智慧屏 V55/V85 明日 0 点正式开售:搭载鸿蒙系统...

IT之家 5 月 28 日消息 在今年 4 月份的华为全屋智能及智慧屏旗舰新品发布会上&#xff0c;华为智慧屏 V 系列 2021 款正式发布。新产品外观更加简洁&#xff0c;底部音响组件进一步隐藏&#xff0c;同时依旧采用弹出式 2400 万像素 AI 摄像头。今天&#xff0c;华为官方宣布&a…

LeetCode 1818. 绝对差值和(二分查找)

文章目录1. 题目2. 解题前三题&#xff0c;拼手速。最后一题暴力超时。1. 题目 给你两个正整数数组 nums1 和 nums2 &#xff0c;数组的长度都是 n 。 数组 nums1 和 nums2 的 绝对差值和 定义为所有 |nums1[i] - nums2[i]|&#xff08;0 < i < n&#xff09;的 总和&a…

LeetCode 1819. 序列中不同最大公约数的数目

文章目录1. 题目2. 解题1. 题目 给你一个由正整数组成的数组 nums 。 数字序列的 最大公约数 定义为序列中所有整数的共有约数中的最大整数。 例如&#xff0c;序列 [4,6,16] 的最大公约数是 2 。 数组的一个 子序列 本质是一个序列&#xff0c;可以通过删除数组中的某些元素…

1803无法升级到2004_汽车排放国标是什么意思:1/2/3/4/5/6的升级是为了什么?

全球各大汽车工业强国或地区都有汽车排放制造标准&#xff0c;知名度较高的有以下四组。美标欧标日标国标在上述标准中欧洲与日本开始实施的节点比较早&#xff0c;美国轻型汽车排放法规「Tier」与上世纪90年代开始实施&#xff0c;国标则是从2000年才开始。之所以要为汽车制造…

LeetCode LCP 28. 采购方案(排序 + 二分查找)

文章目录1. 题目2. 解题1. 题目 小力将 N 个零件的报价存于数组 nums。 小力预算为 target&#xff0c;假定小力仅购买两个零件&#xff0c;要求购买零件的花费不超过预算&#xff0c;请问他有多少种采购方案。 注意&#xff1a;答案需要以 1e9 7 (1000000007) 为底取模&…

@service注解_Spring 中 @Component、@Service 等注解如何被解析?

前言Component和Service都是工作中常用的注解&#xff0c;Spring如何解析&#xff1f;1.Component解析流程找入口Spring Framework2.0开始&#xff0c;引入可扩展的XML编程机制&#xff0c;该机制要求XML Schema命名空间需要与Handler建立映射关系。该关系配置在相对于classpat…

svg载入html,SVG系列教程:SVG简介与嵌入HTML页面的方式

随着技术向前的推进&#xff0c;SVG相关的讨论也越渐频繁。为了紧跟时代的步伐&#xff0c;我也开始步入SVG相关技术的探索与学习之中。从这篇文章开始会在W3cplus站点上陆续向大家推出有关于SVG相关的教程、译文或案例等。感兴趣的同学可以跟随着教程一起了解与学习SVG相关的知…

LeetCode LCP 30. 魔塔游戏(优先队列)

文章目录1. 题目2. 解题1. 题目 小扣当前位于魔塔游戏第一层&#xff0c;共有 N 个房间&#xff0c;编号为 0 ~ N-1。 每个房间的补血道具/怪物对于血量影响记于数组 nums&#xff0c;其中&#xff1a; 正数表示道具补血数值&#xff0c;即血量增加对应数值&#xff1b;负数表…

字符变量赋值规则_Java的常量、变量、数据类型(基础篇二)

标识符标识符&#xff1a;是指在程序中自己定义的内容&#xff0c;如类名、方法名、变量名等等。命名规则&#xff1a;是有硬性要求的关键字&#xff1a;是指Java已经定义好的单词&#xff0c;具有特殊含义&#xff0c;比如public、static、class、void等等标识符可以包含英文字…

selenium定位输入框_[Selenium 粗浅笔记] 用Selenium填写表单

要做什么Steiner&#xff1a;[Selenium] 简单介绍​zhuanlan.zhihu.com我们用刚才学到的知识去用selenium来模拟与表单交互&#xff0c;还好有个可以练习的网站 test website 拿这个网站来试试输入用户名&#xff0c;密码ps: 其实这个自己在本地写个网页就行了&#xff0c;ajax…

LeetCode LCP 29. 乐团站位(数学 等差数列)

文章目录1. 题目2. 解题2.1 模拟超时2.2 优化通过1. 题目 某乐团的演出场地可视作 num * num 的二维矩阵 grid&#xff08;左上角坐标为 [0,0])&#xff0c;每个位置站有一位成员。 乐团共有 9 种乐器&#xff0c;乐器编号为 1~9&#xff0c;每位成员持有 1 个乐器。 为保证声…

python三引号注释_python使用三引号来注释的具体原因?

Why didnt python just use the traditional style of comments like C/C/Java uses: /** * Comment lines * More comment lines */ // line comments // line comments // Is there a specific reason for this or is it just arbitrary? 解决方案 Python doesnt use triple…