例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]。

解题思路:
使用HashSet将数组中有重复的元素放在一个HashSet中,若数组为空或者数组元素长度小于2或k<0,对数为0,若k==0时,则k-diff对数是此数组重复元素的HashSet集合的大小。若k>0是将数组元素放入两个HashSet中。通过迭代器遍历元素,判断set1中是否有元素值值跟迭代器当前遍历出的元素值-k相等,有则对数加一。
public int findPairs(int[] nums, int k) {if (nums.length<2||nums==null||k<0)return 0;Set<Integer> set1=new HashSet<>();Set<Integer> set2=new HashSet<>();Set<Integer> repeat=new HashSet<>();for (int i=0;i<nums.length;i++){if (set1.contains(nums[i])){repeat.add(nums[i]);}else {set2.add(nums[i]);set1.add(nums[i]);}}if (k==0)return repeat.size();int m=0;Iterator iterator=set1.iterator();while (iterator.hasNext()){int a= (int) iterator.next();if(set2.contains(a-k))m++;}return m;}

转载于:https://www.cnblogs.com/dloading/p/10713522.html

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

  1. 求数组中第k个最小数

    一.问题描述 给定一个数组,数组中的数据无序,在一个数组中找出其第k个最小的数,例如对于数组x,x = {3,2,1,4,5,6},则其第2个最小的数为2. 二.解题思路 本算法跟快排的思想相似,首先 ...

  2. Leetcode215数组中第k大的数-最小堆

    题目 在未排序的数组中找到第 k 个最大的元素.请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素. 示例 1: 输入: [3,2,1,5,6,4] 和 k = 2 输出 ...

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

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

  4. python 数组中第k个最大元素

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

  5. 线性时间复杂度求数组中第K大数

    求数组中第K大的数可以基于快排序思想,步骤如下: 1.随机选择一个支点 2.将比支点大的数,放到数组左边:将比支点小的数放到数组右边:将支点放到中间(属于左部分) 3.设左部分的长度为L, 当K &l ...

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

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

  7. C语言求一个数组中第k大的数,leetcode | Median of Two Sorted Arrays 寻找2个有序数组中第k大的值...

    There are two sorted arrays A and B of size m and n respectively. Find the median of the two sorted ...

  8. perl 哈希数组的哈希_第一个元素使用哈希在数组中出现K次

    perl 哈希数组的哈希 Prerequisite: Hashing data structure 先决条件: 哈希数据结构 Problem statement: 问题陈述: Find the fir ...

  9. 一题多解(五) —— topK(数组中第 k 大/小的数)

    根据对称性,第 k 大和第 k 小,在实现上,是一致的,我们就以第 k 小为例,进行说明: 法 1 直接排序(sort(A, A+N)),当使用一般时间复杂度的排序算法时,其时间复杂度为 O(N2)O ...

  10. 寻找数组中第k大的数

    题目:有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数. 给定一个整数数组a,同时给定它的大小n和要找的K(K在1到n之间),请返回第K大的数,保证答案存在. 测试样例: [1,3,5,2 ...

最新文章

  1. 二叉树的前序、中序、后序非递归遍历 python实现
  2. Python学习系列(六)(模块)
  3. String ... String 三个点 jdk1.5的特性.才知道
  4. Service Mesh微服务熔断、限流的骚操作
  5. 服务器操作系统与安装步骤,服务器操作系统与安装步骤
  6. 听说,阿里“拆中台”了?
  7. C语言获取某个分割符之前的内容
  8. 精致的App登录页设计欣赏给你灵感
  9. 红帽安装Oracle步骤
  10. apache tomcat php mysql 配置_Apache与Tomcat服务器整合的基本配置方法及概要说明
  11. HDU2028 Lowest Common Multiple Plus【GCD+LCM】
  12. python的优点有哪些-python的优点和缺点是什么?
  13. 线上支付之----网关支付、银联代扣通道、快捷支付、银行卡支付等网上常见支付方式接口说明!!
  14. 西门子200Smart modbus RTU 双主站程序 西 门子200Smart modbus RTU 程序封装赋值即用,配置详细说明
  15. 一鸣心所向:想成功?变身蝙蝠侠吧
  16. 老王的电影网站 - 推荐系统入门(一)
  17. 自考英语和计算机可以替代,自考本科学位英语用什么可以替代?
  18. Python实现小猪佩奇
  19. C语言十个数中求出平均值
  20. 计算机制作校徽 的 体会,制作校徽_课程中心_3D One官网www.i3done.com

热门文章

  1. Pandas知识点-统计运算函数
  2. Python实现二叉搜索树的删除功能
  3. Python使用multiprocessing实现多进程
  4. IaaS, PaaS和SaaS公司都做些什么
  5. float和clear都是布局的属性
  6. oracle中表空间详解
  7. @scheduled注解配置时间_Spring Boot中使用@Scheduled创建定时任务
  8. js修改背景图片路径_前端面试题————关键渲染路径(Critical Rendering Path)...
  9. leetcode —— 200. 岛屿数量
  10. python发动机悬置解耦计算-按重心处整车坐标系解耦