532 -数组中的K-diff对
例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对相关推荐
- 求数组中第k个最小数
一.问题描述 给定一个数组,数组中的数据无序,在一个数组中找出其第k个最小的数,例如对于数组x,x = {3,2,1,4,5,6},则其第2个最小的数为2. 二.解题思路 本算法跟快排的思想相似,首先 ...
- Leetcode215数组中第k大的数-最小堆
题目 在未排序的数组中找到第 k 个最大的元素.请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素. 示例 1: 输入: [3,2,1,5,6,4] 和 k = 2 输出 ...
- Leetcode 215.数组中第k个最大元素 (每日一题 20210713)
给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素.请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素.示例 1:输入: [3,2,1,5,6,4] 和 ...
- python 数组中第k个最大元素
数组中第k个最大元素 给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素.请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素.示例 1:输入: [3,2 ...
- 线性时间复杂度求数组中第K大数
求数组中第K大的数可以基于快排序思想,步骤如下: 1.随机选择一个支点 2.将比支点大的数,放到数组左边:将比支点小的数放到数组右边:将支点放到中间(属于左部分) 3.设左部分的长度为L, 当K &l ...
- 2053. 数组中第 K 个独一无二的字符串
2053. 数组中第 K 个独一无二的字符串 独一无二的字符串 指的是在一个数组中只出现过 一次 的字符串. 给你一个字符串数组 arr 和一个整数 k ,请你返回 arr 中第 k 个 独一无二的字 ...
- 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 ...
- perl 哈希数组的哈希_第一个元素使用哈希在数组中出现K次
perl 哈希数组的哈希 Prerequisite: Hashing data structure 先决条件: 哈希数据结构 Problem statement: 问题陈述: Find the fir ...
- 一题多解(五) —— topK(数组中第 k 大/小的数)
根据对称性,第 k 大和第 k 小,在实现上,是一致的,我们就以第 k 小为例,进行说明: 法 1 直接排序(sort(A, A+N)),当使用一般时间复杂度的排序算法时,其时间复杂度为 O(N2)O ...
- 寻找数组中第k大的数
题目:有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数. 给定一个整数数组a,同时给定它的大小n和要找的K(K在1到n之间),请返回第K大的数,保证答案存在. 测试样例: [1,3,5,2 ...
最新文章
- 二叉树的前序、中序、后序非递归遍历 python实现
- Python学习系列(六)(模块)
- String ... String 三个点 jdk1.5的特性.才知道
- Service Mesh微服务熔断、限流的骚操作
- 服务器操作系统与安装步骤,服务器操作系统与安装步骤
- 听说,阿里“拆中台”了?
- C语言获取某个分割符之前的内容
- 精致的App登录页设计欣赏给你灵感
- 红帽安装Oracle步骤
- apache tomcat php mysql 配置_Apache与Tomcat服务器整合的基本配置方法及概要说明
- HDU2028 Lowest Common Multiple Plus【GCD+LCM】
- python的优点有哪些-python的优点和缺点是什么?
- 线上支付之----网关支付、银联代扣通道、快捷支付、银行卡支付等网上常见支付方式接口说明!!
- 西门子200Smart modbus RTU 双主站程序 西 门子200Smart modbus RTU 程序封装赋值即用,配置详细说明
- 一鸣心所向:想成功?变身蝙蝠侠吧
- 老王的电影网站 - 推荐系统入门(一)
- 自考英语和计算机可以替代,自考本科学位英语用什么可以替代?
- Python实现小猪佩奇
- C语言十个数中求出平均值
- 计算机制作校徽 的 体会,制作校徽_课程中心_3D One官网www.i3done.com
热门文章
- Pandas知识点-统计运算函数
- Python实现二叉搜索树的删除功能
- Python使用multiprocessing实现多进程
- IaaS, PaaS和SaaS公司都做些什么
- float和clear都是布局的属性
- oracle中表空间详解
- @scheduled注解配置时间_Spring Boot中使用@Scheduled创建定时任务
- js修改背景图片路径_前端面试题————关键渲染路径(Critical Rendering Path)...
- leetcode —— 200. 岛屿数量
- python发动机悬置解耦计算-按重心处整车坐标系解耦