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

杭州 企业门户网站建设软文世界官网

杭州 企业门户网站建设,软文世界官网,wordpress付费资源,网站制作费用低文章目录题目标题和出处难度题目描述要求示例数据范围解法思路和算法代码复杂度分析题目 标题和出处 标题#xff1a;数组中的 k-diff 数对 出处#xff1a;532. 数组中的 k-diff 数对 难度 4 级 题目描述 要求 给定一个整数数组 nums\texttt{nums}nums 和一个整数 k… 文章目录题目标题和出处难度题目描述要求示例数据范围解法思路和算法代码复杂度分析题目 标题和出处 标题数组中的 k-diff 数对 出处532. 数组中的 k-diff 数对 难度 4 级 题目描述 要求 给定一个整数数组 nums\texttt{nums}nums 和一个整数 k\texttt{k}k返回不同的 k\texttt{k}k-diff 数对的数目。 一个 k\texttt{k}k-diff 数对为一个整数对 (nums[i],nums[j])\texttt{(nums[i], nums[j])}(nums[i], nums[j])并满足下述条件 0≤i,jnums.length\texttt{0} \le \texttt{i, j} \texttt{nums.length}0≤i, jnums.lengthnums[i]≤nums[j]\texttt{nums[i]} \le \texttt{nums[j]}nums[i]≤nums[j]|nums[i]-nums[j]|k\texttt{|nums[i] - nums[j]|} \texttt{k}|nums[i] - nums[j]|k 注意|val|\texttt{|val|}|val| 表示 val\texttt{val}val 的绝对值。 示例 示例 1 输入nums[3,1,4,1,5],k2\texttt{nums [3, 1, 4, 1, 5], k 2}nums  [3, 1, 4, 1, 5], k  2 输出2\texttt{2}2 解释数组中有两个 2\texttt{2}2-diff 数对(1,3)\texttt{(1, 3)}(1, 3) 和 (3,5)\texttt{(3, 5)}(3, 5)。 尽管数组中有两个 1\texttt{1}1但我们只应返回不同的数对的数量。 示例 2 输入nums[1,2,3,4,5],k1\texttt{nums [1, 2, 3, 4, 5], k 1}nums  [1, 2, 3, 4, 5], k  1 输出4\texttt{4}4 解释数组中有四个 1\texttt{1}1-diff 数对(1,2)\texttt{(1, 2)}(1, 2)(2,3)\texttt{(2, 3)}(2, 3)(3,4)\texttt{(3, 4)}(3, 4) 和 (4,5)\texttt{(4, 5)}(4, 5)。 示例 3 输入nums[1,3,1,5,4],k0\texttt{nums [1, 3, 1, 5, 4], k 0}nums  [1, 3, 1, 5, 4], k  0 输出1\texttt{1}1 解释数组中只有一个 0\texttt{0}0-diff 数对(1,1)\texttt{(1, 1)}(1, 1)。 数据范围 1≤nums.length≤104\texttt{1} \le \texttt{nums.length} \le \texttt{10}^\texttt{4}1≤nums.length≤104-107≤nums[i]≤107\texttt{-10}^\texttt{7} \le \texttt{nums[i]} \le \texttt{10}^\texttt{7}-107≤nums[i]≤1070≤k≤107\texttt{0} \le \texttt{k} \le \texttt{10}^\texttt{7}0≤k≤107 解法 思路和算法 由于题目要求计算数组 nums\textit{nums}nums 中的不同的差为 kkk 的数对的数目因此只需要考虑数组中有哪些数字不需要考虑顺序。 计算差为 kkk 的数对的数目需要考虑两种情况分别是 k0k 0k0 和 k0k 0k0。 当 k0k 0k0 时每个差为 kkk 的数对由两个相等的整数组成对于任意整数 num\textit{num}num只有当 num\textit{num}num 在数组 nums\textit{nums}nums 中出现次数大于 111 次时才有数对 (num,num)(\textit{num}, \textit{num})(num,num)。遍历数组 nums\textit{nums}nums 并用哈希表记录每个数字的出现次数然后遍历哈希表对于哈希表中的每个数字如果出现次数大于 111 次则将数对的数目加 111。遍历哈希表结束之后即可得到差为 kkk 的数对的数目。 当 k0k 0k0 时每个差为 kkk 的数对由两个不相等的整数组成对于任意整数 num\textit{num}num当 num\textit{num}num 和 numk\textit{num} knumk 都在数组中出现时有数对 (num,numk)(\textit{num}, \textit{num} k)(num,numk)。遍历数组 nums\textit{nums}nums 并用哈希集合记录出现的数字然后遍历哈希集合对于哈希集合中的每个数字 num\textit{num}num如果 numk\textit{num} knumk 也在哈希集合中则将数对的数目加 111。遍历哈希集合结束之后即可得到差为 kkk 的数对的数目。 代码 class Solution {public int findPairs(int[] nums, int k) {int pairs 0;if (k 0) {MapInteger, Integer map new HashMapInteger, Integer();for (int num : nums) {map.put(num, map.getOrDefault(num, 0) 1);}SetInteger set map.keySet();for (int num : set) {if (map.get(num) 1) {pairs;}}} else {SetInteger set new HashSetInteger();for (int num : nums) {set.add(num);}for (int num : set) {if (set.contains(num k)) {pairs;}}}return pairs;} }复杂度分析 时间复杂度O(n)O(n)O(n)其中 nnn 是数组 nums\textit{nums}nums 的长度。需要遍历数组一次使用哈希表或哈希集合存储数组中的不同数字然后遍历哈希表或哈希集合一次由于哈希表或哈希集合中的元素个数不超过数组长度因此时间复杂度是 O(n)O(n)O(n)。 空间复杂度O(n)O(n)O(n)其中 nnn 是数组 nums\textit{nums}nums 的长度。需要使用哈希表或哈希集合存储数组中的不同数字最坏情况下需要存储数组中的全部数字。
http://www.hkea.cn/news/14300388/

相关文章:

  • 免费建网站的谢岗网站仿做
  • 工商银行建设银行招商银行网站小程序开发代理
  • 网站开发需要营销型网站要点
  • 有备案号的网站是公司的吗汕头企业网站
  • 大型的建设工程类考试辅导网站长春网络公司合作
  • 美橙建站五合一建站套餐申请wordpress如何开发手机版
  • 本地做网站绑定域名怎么做网页的超链接
  • 企业建设网站注意事项施工企业在施工过程中发现设计文件和图纸有差错的应当
  • wordpress怎么编辑网站建设网站赚的是什么钱
  • 建设中心小学网站涿州规划建设局网站
  • 济南网站建设与维护php 微信 网站建设
  • 百度爱采购网站网站策划书的撰写流程是什么
  • 公司网站开发软件建设阅读网站的意义
  • 永康市建设局网站怎样申请微信小程序卖货
  • 贵州省城乡与住房建设厅网站深圳网络推广公司推荐
  • 广元网站建设seo优化营销制作设计前台网站模板
  • 网站设计公司排行江苏营销型网站公司
  • 虚拟网站免费注册护理专业主要学什么
  • 厦门网站制作收费长沙营销型网站制
  • 潮州哪里有做网站网络服务包含哪些服务
  • 效果图代做网站p2p网站开发的流程图
  • 潍坊网站建设公司有哪些做货代在上面网站找客户比较多
  • 网站建设合作协议文本网站模版如何使用
  • 网站建设大公司域名备案查询网
  • 宜宾市网站建设虚拟网站建设
  • wordpress仿p站主题互联网应用技术学什么
  • wordpress怎么做两个语言网站页面模板图片大小
  • 宁波网站建设网站开发wordpress 域名访问还是临时域名
  • 都匀市网站建设少儿编程培训机构哪里好
  • 网站群建设意见公司网站建设宣传