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

移动网站开发服务福州网站开发cms

移动网站开发服务,福州网站开发cms,郑州网站设,电子游戏设计方案力扣 2364. 统计坏数对的数目 中等 前言一、题目内容二、解题方法1. 哈希函数12. 哈希函数22.官方题解2.1 方法一:使用 sqrt 函数 前言 这是刷算法题的第十四天,用到的语言是JS 题目:力扣 2364. 统计坏数对的数目 (中等) 一、题目内容 给你…

力扣 2364. 统计坏数对的数目 中等

  • 前言
  • 一、题目内容
  • 二、解题方法
    • 1. 哈希函数1
    • 2. 哈希函数2
    • 2.官方题解
      • 2.1 方法一:使用 sqrt 函数


前言

这是刷算法题的第十四天,用到的语言是JS
题目:力扣 2364. 统计坏数对的数目 (中等)


一、题目内容

给你一个下标从 0 0 0 开始的整数数组 nums 。如果 i < j i < j i<j j − i ! = n u m s [ j ] − n u m s [ i ] j - i != nums[j] - nums[i] ji!=nums[j]nums[i] ,那么我们称 ( i , j ) (i, j) (i,j) 是一个 坏数对 。

请你返回 n u m s nums nums 中 坏数对 的总数目。

示例 1:
输入:nums = [4,1,3,3]
输出:5
解释:数对 (0, 1) 是坏数对,因为 1 - 0 != 1 - 4 。
数对 (0, 2) 是坏数对,因为 2 - 0 != 3 - 4, 2 != -1 。
数对 (0, 3) 是坏数对,因为 3 - 0 != 3 - 4, 3 != -1 。
数对 (1, 2) 是坏数对,因为 2 - 1 != 3 - 1, 1 != 2 。
数对 (2, 3) 是坏数对,因为 3 - 2 != 3 - 3, 1 != 0 。
总共有 5 个坏数对,所以我们返回 5 。

示例 2:

输入:nums = [1,2,3,4,5]
输出:0
解释:没有坏数对。

提示:

1 < = n u m s . l e n g t h < = 1 0 5 1 <= nums.length <= 10^5 1<=nums.length<=105
1 < = n u m s [ i ] < = 1 0 9 1 <= nums[i] <= 10^9 1<=nums[i]<=109

二、解题方法

1. 哈希函数1

代码如下(实例):

/*** @param {number[]} nums* @return {number}*/
var countBadPairs = function(nums) {const len = nums.lengthconst map = new Map()let goodPairs = 0// 遍历数组,统计 i - nums[i] 相等的数量// 1. 使用一个哈希表(对象)来记录每个 i - nums[i] 的出现次数。// 2. 遍历数组,对每个j,计算 j - nums[j],检查之前已经记录的 i - nums[i] 的数量。// 3. 对当前 j 的 j - nums[j] 进行统计,用以计算坏数对的数量。for (let i = 0; i < len; i++) {const currentKey = i - nums[i]goodPairs += map.get(currentKey) || 0map.set(currentKey, (map.get(currentKey) || 0) + 1) // map对于相同的键,只会更新值,这就是为什么要 +1}// 总数对减去好数对就是坏数对  总数对就是 n * (n - 1) / 2,数列的求和公式return (len * ((len - 1) / 2)) - goodPairs
}

2. 哈希函数2

代码如下(示例):

/*** @param {number[]} nums* @return {number}*/
var countBadPairs = function(nums) {const len = nums.lengthconst map = new Map()let goodPairs = 0// 遍历数组,统计 i - nums[i] 相等的数量// 1. 使用一个哈希表(对象)来记录每个 i - nums[i] 的出现次数。// 2. 遍历数组,对每个j,计算 j - nums[j],检查之前已经记录的 i - nums[i] 的数量。// 3. 对当前 j 的 j - nums[j] 进行统计,用以计算坏数对的数量。for (let i = 0; i < len; i++) {const currentKey = i - nums[i]if(map.has(currentKey)) {goodPairs += map.get(currentKey)// break // 此处能不能break呢,就算当前位置有,也要加上当前位置,所以不能}map.set(currentKey, (map.get(currentKey) || 0) + 1 )}// 总数对减去好数对就是坏数对  总数对就是 n * (n - 1) / 2,数列的求和公式return (len * ((len - 1) / 2)) - goodPairs
}

2.官方题解

2.1 方法一:使用 sqrt 函数

cv

代码如下(示例):

var countBadPairs = function(nums) {const mp = new Map();let res = 0;for (let i = 0; i < nums.length; i++) {const key = nums[i] - i;res += i - (mp.get(key) || 0);mp.set(key, (mp.get(key) || 0) + 1);}return res;
};作者:力扣官方题解
链接:https://leetcode.cn/problems/count-number-of-bad-pairs/solutions/3638890/tong-ji-pi-shu-dui-de-shu-mu-by-leetcode-04ya/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
复杂度分析:
时间复杂度: O ( n ) O(n) O(n),其中 n n n n u m s nums nums 的长度。使用哈希表插入和查询的时间复杂度是 O ( 1 ) O(1) O(1),总共遍历 n n n 个元素,因此时间复杂度为 O ( n ) O(n) O(n)
空间复杂度: O ( n O(n O(n)。哈希表的空间复杂度是 O ( n ) O(n) O(n)

链接:力扣本题官方题解
来源:力扣(LeetCode)


文章转载自:

http://l24N0jKB.hsxkq.cn
http://XBVl2vqM.hsxkq.cn
http://E9mqQCGv.hsxkq.cn
http://3oEVCF30.hsxkq.cn
http://hNLEM1gU.hsxkq.cn
http://FZ5Yaki8.hsxkq.cn
http://p1oFnW9C.hsxkq.cn
http://01OjajD7.hsxkq.cn
http://yEjhywns.hsxkq.cn
http://WvrChMKF.hsxkq.cn
http://TQoVF23D.hsxkq.cn
http://ngDlQYll.hsxkq.cn
http://OIX4cNWd.hsxkq.cn
http://42x1fD24.hsxkq.cn
http://MTSJ92Fa.hsxkq.cn
http://rRNdYcUK.hsxkq.cn
http://7uzsUmcC.hsxkq.cn
http://dK31iNou.hsxkq.cn
http://Pnozu05E.hsxkq.cn
http://JJ6k1dhu.hsxkq.cn
http://sSqrmdUn.hsxkq.cn
http://R3WesEhw.hsxkq.cn
http://wjScsJXp.hsxkq.cn
http://GJ5zj3Yo.hsxkq.cn
http://dLk6Vg1I.hsxkq.cn
http://pQj6xfR3.hsxkq.cn
http://wzjOiRHj.hsxkq.cn
http://ipCdFks7.hsxkq.cn
http://vhm35HXY.hsxkq.cn
http://saQ2mbDM.hsxkq.cn
http://www.dtcms.com/wzjs/665245.html

相关文章:

  • 网站建设培训哪个好自己电脑做网站服务器
  • 青海政企网站建设seo插件wordpress
  • 免费分站网站宁波seo网络推广推荐公众号
  • 网站重新备案需要多长时间wordpress上篇下篇代码
  • 产品展示型网站模板网站建设创建
  • 潜江资讯网 手机版偷的网站怎么做seo
  • 肥西做网站网络营销的推广方法有哪些
  • 网站模板红黑厦门百度推广怎么做
  • 怎样自做网站软件技术包括哪些
  • 国家高职示范校建设网站怎样注册公司邮箱账号
  • 网站的类型大全个人网页设计作品模板简单抑郁症
  • 域名过期了怎么办怎么找回网站wordpress+小米商城
  • 剪辑素材网站免费wordpress主题 seo
  • 超市网站建设石家庄商城网站建设
  • 网站 跳出率 多少wordpress中文注册插件
  • 哪里网站备案方便快网站建设买服务器价格
  • 中国购物网站大全排名营销网站建设yyeygtytty
  • 江苏手机网站建设php 网站下载器
  • 网站后台怎么控制做网站灵宝
  • 网站源码怎么用高德地图怎么申报地址
  • o2o网站建设基本流程贵阳网站商城建设
  • 东莞装饰网站建设flash网站模板免费下载
  • 烟台提供网站设计制作职高门户网站建设标准
  • 查找企业信息的网站网站建设维护费 会计科目
  • 境外企业网站推广生活中实用的产品设计
  • 网站集约化建设报告做电影网站需要多打了服务器
  • 做淘客网站要多大的服务器永久免费做网站
  • 麒麟网站建设集团网站网页模板
  • 网站后台排版布局呼和浩特市做网站公司好的
  • 佛山网站制作哪家北京中小企业建站价格