1. 题目

给定一个整数数组和一个整数 k, 你需要在数组里找到不同的 k-diff 数对。
这里将 k-diff 数对定义为一个整数对 (i, j), 其中 i 和 j 都是数组中的数字,且两数之差的绝对值是 k.

示例 1:
输入: [3, 1, 4, 1, 5], k = 2
输出: 2
解释: 数组中有两个 2-diff 数对, (1, 3) 和 (3, 5)。
尽管数组中有两个1,但我们只应返回不同的数对的数量。示例 2:
输入:[1, 2, 3, 4, 5], k = 1
输出: 4
解释: 数组中有四个 1-diff 数对, (1, 2), (2, 3), (3, 4) 和 (4, 5)。示例 3:
输入: [1, 3, 1, 5, 4], k = 0
输出: 1
解释: 数组中只有一个 0-diff 数对,(1, 1)。注意:
数对 (i, j) 和数对 (j, i) 被算作同一数对。
数组的长度不超过10,000。
所有输入的整数的范围在 [-1e7, 1e7]。

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

2. 解题

class Solution {public:int findPairs(vector<int>& nums, int k) {if(k < 0)return 0;unordered_map<int,int> m;for(int num:nums)m[num]++;int sum = 0;if(k != 0){for(auto p : m)if(m.count(p.first+k))//因为i,j | j,i 算1组,只用+k,不用检查-ksum++;}else//k==0for(auto it : m)if(it.second >= 2)//数字自己>=2个,可以产生1组sum++;return sum;}
};

32 ms 12.1 MB

LeetCode 532. 数组中的K-diff数对相关推荐

  1. Leetcode 532.数组中的K-diff数对

    数组中的K-diff数对 给定一个整数数组和一个整数 k, 你需要在数组里找到不同的 k-diff 数对.这里将 k-diff 数对定义为一个整数对 (i, j), 其中 i 和 j 都是数组中的数字 ...

  2. Leetcode 215.数组中第k个最大元素 (每日一题 20210713)

    给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素.请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素.示例 1:输入: [3,2,1,5,6,4] 和 ...

  3. LeetCode——寻找数组中第三大的数

    给定一个非空数组,返回此数组中第三大的数.如果不存在,则返回数组中最大的数.要求算法时间复杂度必须是O(n). 示例 1: 输入: [3, 2, 1] 输出: 1 解释: 第三大的数是 1. 示例 2 ...

  4. Leetcode——2053. 数组中第 K 个独一无二的字符串

    数组中第 K 个独一无二的字符串 题目 解题思路 题目 独一无二的字符串 指的是在一个数组中只出现过 一次 的字符串. 给你一个字符串数组 arr 和一个整数 k ,请你返回 arr 中第 k 个 独 ...

  5. LeetCode —— 532. 数组中的K-diff数对(Python)

    给定一个整数数组和一个整数 k, 你需要在数组里找到不同的 k-diff 数对.这里将 k-diff 数对定义为一个整数对 (i, j), 其中 i 和 j 都是数组中的数字,且两数之差的绝对值是 k ...

  6. LeetCode 2053. 数组中第 K 个独一无二的字符串(哈希)

    文章目录 1. 题目 2. 解题 1. 题目 独一无二的字符串 指的是在一个数组中只出现过 一次 的字符串. 给你一个字符串数组 arr 和一个整数 k ,请你返回 arr 中第 k 个 独一无二的字 ...

  7. LeetCode 1471. 数组中的 k 个最强值(排序)

    1. 题目 给你一个整数数组 arr 和一个整数 k . 设 m 为数组的中位数,只要满足下述两个前提之一,就可以判定 arr[i] 的值比 arr[j] 的值更强: |arr[i] - m| > ...

  8. 第J题-=数组中等于K的数对(详解) =======给出一个整数K和一个无序数组A,A的元素为N个互不相同的整数

    给出一个整数K和一个无序数组A,A的元素为N个互不相同的整数,找出数组A中所有和等于K的数对.例如K = 8,数组A:{-1,6,5,3,4,2,9,0,8},所有和等于8的数对包括(-1,9),(0 ...

  9. 2022-2-9 Leetcode 532.数组中的 k-diff 数对

    第一版,巨慢 class Solution {public:// int findPairs(vector<int>& nums, int k) {// int ret = 0;/ ...

最新文章

  1. 多分类问题的ROC曲线绘制
  2. 2、SpringBoot整合JDBC
  3. 一个高质量的程序应具备哪些条件?_如何开好一个精品店?需要具备哪些条件?...
  4. 指定的参数已超出有效值的范围_整流二极管的特性和重要参数
  5. 调查VMware View Composer失败代码(2085204)
  6. Hibernate - HHH000352: Unable to release batch statement
  7. Alfred Remote初体验
  8. 知识点:Office插入数学公式常用的快捷键(终于可以解放鼠标了)
  9. diffuse、specular贴图的光照
  10. ue4人物动作_ue4人物动作资源Resource Gathering Animation418
  11. 大华平台linux密码,大华DSS平台低权限账户越权直接修改system密码
  12. 欧拉回路,欧拉路径,欧拉图详解
  13. 2014年春季学期,每日计划总结,每日签到
  14. 中小企业数字化转型难,不妨先从业务流程自动化开始
  15. VUE组件通信的使用
  16. java转换2进制_java里怎样把文件转换成二进制
  17. c语言贴粘,挖坟贴,多年前发的一个如何学习C语言的帖子
  18. 计算机网络工程师多久过期,软考网络工程师证书有效期是多久?
  19. Antlr4入门(三)如何编写语法文件
  20. DevExpress破解版下载

热门文章

  1. oracle高资源消耗sql,Oracle高资源消耗SQL语句定位
  2. 数据结构探险——图篇
  3. linux内核源码目录结构(2.6.35.7版本)
  4. 对图片进行压缩,水印,伸缩变换,透明处理,格式转换操作
  5. ASP.Net快速开发新闻系统 在线播放
  6. Hibernate+mysql 中文问题解决方案.
  7. 互斥锁mutex的使用方法
  8. 反馈电路中相位补偿,到底是什么鬼?
  9. 图解丨在嵌入式设备上实现HTTP服务器
  10. C++ 的几个for 循环,范围for语句