当前位置: 首页 > news >正文

532. 数组中的 k-diff 数对

532. 数组中的 k-diff 数对icon-default.png?t=M7J4https://leetcode.cn/problems/k-diff-pairs-in-an-array/

难度中等244

给你一个整数数组 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 的绝对值。

示例 1:

输入:nums = [3, 1, 4, 1, 5], k = 2
输出:2
解释:数组中有两个 2-diff 数对, (1, 3) 和 (3, 5)。
尽管数组中有两个 1 ,但我们只应返回不同的数对的数量。

示例 2:

输入:nums = [1, 2, 3, 4, 5], k = 1
输出:4
解释:数组中有四个 1-diff 数对, (1, 2), (2, 3), (3, 4) 和 (4, 5) 。

示例 3:

输入:nums = [1, 3, 1, 5, 4], k = 0
输出:1
解释:数组中只有一个 0-diff 数对,(1, 1) 。

提示:

  • 1 <= nums.length <= 104
  • -107 <= nums[i] <= 107
  • 0 <= k <= 107

通过次数58,627提交次数129,752

class Solution {
    public int findPairs(int[] nums, int k) {
        int ans =0;
        Arrays.sort(nums);
        if(k==0)
        {
            int z = nums[0]-1;
            for(int i=1;i<nums.length;i++)
            {
                if(nums[i]==nums[i-1] && nums[i]!=z) ans++;
                z = nums[i-1];
            }
            return ans;
        }
        
        for(int i=0;i<nums.length;i++)
        {
            for(int j=i+1;j<nums.length;j++)
            {
                if(nums[j]-nums[i]<k) continue;
                else if(nums[j]-nums[i]==k)
                {
                    if(i==0 && nums[j]!=nums[j-1]) ans++;
                    if(i>0 && nums[i]!=nums[i-1] && nums[j]!=nums[j-1]) ans++;   
                } 
                else break;
            }
        }
        return ans;
    }
}

 

相关文章:

  • 通过mybatis自定义参数类型转换器,进行数据库字段加密脱敏
  • Win10修复IPv6优先访问
  • 盘点市面上七款好用的代码加密混淆工具,你都用过哪款?
  • STC15单片机-按键检测单击或长按(外部中断)
  • 卷积神经网络工作原理图,图卷积神经网络原理
  • 猿创征文 |【C++】C向C++知识的过度(下)
  • 期货行业首批信创试点单位转型实践|信创专题
  • Ambari升级Atlas1.1.0到2.2.0
  • 公众号搜题平台系统
  • 【PTHREAD】线程退出与取消
  • 组件命名报错 “Component name “XXX“ should always be multi-word”的解决方法
  • 离职前一定要删除这几个文件,不然你的微信聊天记录全被别人看了
  • Vue(模板语法1)
  • 银行利率bp是什么意思,bp是什么意思贷款利率
  • 暗月项目四
  • 11111111
  • Android优雅地处理按钮重复点击
  • axios 和 cookie 的那些事
  • conda常用的命令
  • co模块的前端实现
  • export和import的用法总结
  • HTTP那些事
  • Java|序列化异常StreamCorruptedException的解决方法
  • JavaScript新鲜事·第5期
  • Linux编程学习笔记 | Linux IO学习[1] - 文件IO
  • Mocha测试初探
  • MySQL数据库运维之数据恢复
  • Phpstorm怎样批量删除空行?
  • Vue官网教程学习过程中值得记录的一些事情
  • webpack项目中使用grunt监听文件变动自动打包编译
  • 仿天猫超市收藏抛物线动画工具库
  • 给Prometheus造假数据的方法
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 前端代码风格自动化系列(二)之Commitlint
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 数据科学 第 3 章 11 字符串处理
  • 限制Java线程池运行线程以及等待线程数量的策略
  • Nginx实现动静分离
  • ​ssh免密码登录设置及问题总结
  • ​软考-高级-信息系统项目管理师教程 第四版【第19章-配置与变更管理-思维导图】​
  • #android不同版本废弃api,新api。
  • (27)4.8 习题课
  • (C语言)字符分类函数
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (一)SpringBoot3---尚硅谷总结
  • (一)VirtualBox安装增强功能
  • (一)基于IDEA的JAVA基础1
  • (已解决)什么是vue导航守卫
  • (原)Matlab的svmtrain和svmclassify
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • .net framework profiles /.net framework 配置
  • .NET/C# 使窗口永不激活(No Activate 永不获得焦点)
  • .Net下C#针对Excel开发控件汇总(ClosedXML,EPPlus,NPOI)
  • .net中的Queue和Stack
  • @data注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)