领扣LintCode算法问题答案-1187. 数组中的K-diff对
发布日期:2021-06-30 17:10:14
浏览次数:2
分类:技术文章
本文共 1455 字,大约阅读时间需要 4 分钟。
领扣LintCode算法问题答案-1187. 数组中的K-diff对
目录
1187. 数组中的K-diff对
描述
给定一个整数数组和一个整数 k ,您需要找到数组中唯一 k-diff 对的数量。这里 k-diff 对被定义为整数对 (i, j),其中 i 和 j 都是数组中的数字,它们的绝对差是 k 。
- 对(i,j)和(j,i)计为同一对。
- 数组的长度不超过10,000。
- 给定输入中的所有整数都属于以下范围:[ -1e7, 1e7]。
样例 1:
输入: [3, 1, 4, 1, 5], k = 2输出: 2说明:数组中有两个2-diff对,(1, 3)和(3, 5)。虽然我们在输入中有两个1,但我们应该只返回一对(1,3)。
样例 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).
题解
public class Solution { /** * @param nums: an array of integers * @param k: an integer * @return: the number of unique k-diff pairs */ public int findPairs(int[] nums, int k) { // Write your code here int ret = 0; Arrays.sort(nums); SetuniqueRecord = new HashSet<>(); for (int i = 0; i < nums.length; i++) { for (int j = i + 1; j < nums.length; j++) { int lowNum = nums[i]; int highNum = nums[j]; if (highNum - lowNum > k) { break; } if (highNum - lowNum == k) { if (!uniqueRecord.contains(highNum)) { ret++; uniqueRecord.add(highNum); } break; } } } return ret; }}
鸣谢
非常感谢你愿意花时间阅读本文章,本人水平有限,如果有什么说的不对的地方,请指正。
欢迎各位留言讨论,希望小伙伴们都能每天进步一点点。
转载地址:https://le-yi.blog.csdn.net/article/details/108892923 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2024年05月03日 01时06分04秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
【论文阅读笔记】文本分类论文汇总
2019-04-30
【NLP学习笔记】One-hot encoding:独热编码
2019-04-30
【工具使用】CSDN编辑器markdown字体、颜色与字号的设置
2019-04-30
【NLP学习笔记】词共现矩阵
2019-04-30
【NLP学习笔记】NLP基础知识框架图
2019-04-30
【工具和环境】Linux下安装pycharm
2019-04-30
【工具与环境】Windows下安装Sublime Text 3
2019-04-30
【工具与环境】Excel中批量插入行
2019-04-30
【学习笔记】对vanilla的一些个人理解
2019-04-30
【解决错误】The size of tensor a (8) must match the size of tensor b (64) at non-singleton dimension 1
2019-04-30
“学硕” VS “专硕”
2019-04-30
【NLP学习笔记】知识图谱阅读笔记及其心得
2019-04-30
【工具使用】新版CSDN-markdown编辑器使用指南
2019-04-30
《知识图谱》阅读笔记(六)
2019-04-30