力扣 532. 数组中的 k-diff 数对
题目
给你一个整数数组 nums 和一个整数 k,请你在数组中找出 不同的 k-diff 数对,并返回不同的 k-diff 数对 的数目。
k-diff 数对定义为一个整数对 (nums[i], nums[j]) ,并满足下述全部条件:
0 <= i, j < nums.length
i != j
nums[i] - nums[j] == k
注意,|val| 表示 val 的绝对值。
示例
输入:nums = [3, 1, 4, 1, 5], k = 2
输出:2
解释:数组中有两个 2-diff 数对, (1, 3) 和 (3, 5)。
尽管数组中有两个 1 ,但我们只应返回不同的数对的数量。
输入:nums = [1, 2, 3, 4, 5], k = 1
输出:4
解释:数组中有四个 1-diff 数对, (1, 2), (2, 3), (3, 4) 和 (4, 5) 。
输入:nums = [1, 3, 1, 5, 4], k = 0
输出:1
解释:数组中只有一个 0-diff 数对,(1, 1) 。
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/k-diff-pairs-in-an-array
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
方法1:HashSet
Java实现1
class Solution {public int findPairs(int[] nums, int k) {int n = nums.length;Set<Integer> set1 = new HashSet<>();Set<Integer> set2 = new HashSet<>();for (int i = 0; i < n; i++) {for (int j = i + 1; j < n; j++) {if (Math.abs(nums[i] - nums[j]) == k) {int a = nums[i];int b = nums[j];if (a > b) {int tmp = a;a = b;b = tmp;}set1.add(a);set2.add(b);}}}return set1.size();}
}
Java实现2
class Solution {public int findPairs(int[] nums, int k) {Set<Integer> visited = new HashSet<>();Set<Integer> res = new HashSet<>();for (int num : nums) {if (visited.contains(num - k)) {res.add(num - k);}if (visited.contains(num + k)) {res.add(num);}visited.add(num);}return res.size();}
}
力扣 532. 数组中的 k-diff 数对相关推荐
- 力扣T51数组中的逆序对--困难
代码是正确的但是对于超级大的输入时还是超时了. 运用分治排序的思想 import java.util.Arrays; public class 数组中的逆序对 {public static void ...
- 第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 ...
- Leetcode215数组中第k大的数-最小堆
题目 在未排序的数组中找到第 k 个最大的元素.请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素. 示例 1: 输入: [3,2,1,5,6,4] 和 k = 2 输出 ...
- LeetCode 532. 数组中的K-diff数对
1. 题目 给定一个整数数组和一个整数 k, 你需要在数组里找到不同的 k-diff 数对. 这里将 k-diff 数对定义为一个整数对 (i, j), 其中 i 和 j 都是数组中的数字,且两数之差 ...
- Leetcode 532.数组中的K-diff数对
数组中的K-diff数对 给定一个整数数组和一个整数 k, 你需要在数组里找到不同的 k-diff 数对.这里将 k-diff 数对定义为一个整数对 (i, j), 其中 i 和 j 都是数组中的数字 ...
- 求数组中第k个最小数
一.问题描述 给定一个数组,数组中的数据无序,在一个数组中找出其第k个最小的数,例如对于数组x,x = {3,2,1,4,5,6},则其第2个最小的数为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 ...
最新文章
- yolov3深度解析
- ADSL获取的IP地址与网关相同,却能上网的原理
- python实现图形旋转_python轻松实现图片旋转
- 第十一章:【UCHome二次开发】功能修改
- 如何摆脱「自我否定」状态
- gx works2 存储器空间或桌面堆栈不足_静态体验奇瑞艾瑞泽GX冠军版,细节做工很精湛...
- mybatis-plus+springboot+vue+element-ui实现分页
- 基于java在线影院订票系统论文
- 计算机程序员三级试题,计算机程序员考试试题及答案.
- 【转】Xposed+JustTrustMe关闭SSL证书验证解决无法抓取https包问题
- 【C语言】C语言实现strcmp库函数
- 毕业设计之 --- 新闻分类系统
- keil5工程函数无法跳转到函数定义解决方法
- web文件管理系统_实用开源项目,基于Web的文件管理系统——DocSys
- 和i77700性能一样的服务器cpu,Intel八代i7 8700K和七代i7 7700K性能对比测验
- python圆形_利用 Python 实现裁剪圆形头像
- Your IP address is spelled incorrectly问题排查
- integer conversion resulted in a change of sign
- 上大学的四年---以此结束四年的时光
- jQuery 验证码输入错误后自动刷新验证码 点击验证码图片刷新验证码
热门文章
- VS2013写智能电子钢琴
- Linux工具学习之【git】
- SpringBoot启动报错Could not resolve placeholder ‘XXX.XXX‘ in value
- MS建模后转成LAMMPS的data文件
- python3新式类_Python之新式类与经典类
- CODEVS P2833 奇怪的梦境
- 安卓高通Diag命令解析
- 苹果屏蔽更新描述文件_屏蔽描述文件失效!iOS13屏蔽系统更新方法推荐
- Minecraft 1.16.5模组开发(五十) 书籍词典 (Guide Book)
- 石头剪刀布(c语言)