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

计算机网络技术网站开发百度一下你就知道官网

计算机网络技术网站开发,百度一下你就知道官网,广州设计事务所,做爰全过程免费的视频99网站2364.统计坏数对的数目 问题 问题分析 根据题目要求&#xff0c;(i, j) 是一个坏数对的条件是&#xff1a; i < j j - i ! nums[j] - nums[i]&#xff0c;即 nums[j] - j ! nums[i] - i 因此&#xff0c;我们可以转换问题&#xff1a;对于每个 j&#xff0c;找到所有 i &l…

2364.统计坏数对的数目

问题

在这里插入图片描述

问题分析

根据题目要求,(i, j) 是一个坏数对的条件是:
i < j
j - i != nums[j] - nums[i],即 nums[j] - j != nums[i] - i
因此,我们可以转换问题:对于每个 j,找到所有 i < j 且 nums[j] - j != nums[i] - i 的 i 的数量

思考

首先考了简单枚举:

class Solution:def countBadPairs(self, nums: List[int]) -> int:ans = 0for i in range(len(nums) - 1):for j in range(i + 1, len(nums)):if j - i != nums[j] - nums[i]:ans += 1return ans

字符串长的情况在这里插入图片描述
数据量大会导致超时

其他解法

计算 nums[i] - i 的值

首先,我们计算每个位置 i 上 nums[i] - i 的值,并存储这些值。

使用哈希表维护

使用一个哈希表来维护到当前 j 位置为止,所有 nums[i] - i (i < j)的出现次数。
遍历数组:对于每个 j,计算 nums[j] - j。
查询哈希表:在哈希表中查询 nums[j] - j 的出现次数,这个次数即为到当前位置 j 为止,与 nums[j] - j 相等的 nums[i] - i(i < j)的数量。
更新结果:坏数对的数量为 j(当前索引)减去上述查询得到的次数(即不相等的数量)。
更新哈希表:将 nums[j] - j 的出现次数加 1。

代码

class Solution:def countBadPairs(self, nums: List[int]) -> int:# 初始化计数器diff_counter = Counter()bad_pairs_count = 0for j, num in enumerate(nums):# 当前位置的差值current_diff = num - j# 当前位置之前的相同差值数量same_diff_count = diff_counter[current_diff]# 坏数对数量:当前位置之前的所有位置数减去相同差值的数量bad_pairs_count += j - same_diff_count# 更新差值计数器diff_counter[current_diff] += 1return bad_pairs_count

复杂度分析

时间复杂度:O(n),其中 n 是 nums 的长度。我们只进行了一次遍历,并且每次操作(查询和更新哈希表)的平均时间复杂度为 O(1)。
空间复杂度:O(n),最坏情况下,哈希表中需要存储 n 个不同的差值

学习

在这里插入图片描述

class Solution:def countBadPairs(self, nums: List[int]) -> int:ans = comb(len(nums), 2)cnt = defaultdict(int)for i, x in enumerate(nums):ans -= cnt[x - i]cnt[x - i] += 1return ans

时间复杂度:O(n),其中 n 是 nums 的长度。
空间复杂度:O(n)。

学习来源

:灵茶山艾府

http://www.dtcms.com/wzjs/307275.html

相关文章:

  • 自己可以模拟装修app杭州seo搜索引擎优化
  • 厦门网站制作专业百度广告联盟收益
  • 定制型网站设计报价表百度竞价托管靠谱吗
  • 昆明做网站方案天津网站策划
  • 阿里巴巴自助建站的一般流程网站关键字优化公司
  • 自己怎么做卡密网站开一个免费网站
  • 公司网站建设的定位语要怎么取营销型网站有哪些
  • 东华建设官方网站汕头seo建站
  • 网站的建设费用预算策划书惠州百度推广优化排名
  • 深圳网站设计公司设计站长工具whois查询
  • 线上推广公司排名seo搜索引擎实战详解
  • 0基础学app程序开发厉害的seo顾问
  • 做愛的网站動漫东莞营销外包公司
  • 国内禁用的国外网站sem优化技巧
  • 时时彩票网站如何做技师培训
  • 长春做网站价格昆山网站制作公司
  • 扫描到网站目录然后怎么做网页快照
  • pc端和移动端的网站区别是什么意思核心关键词是什么意思
  • 企业可以在哪些网站做免费宣传it培训课程
  • 宝安做网站的郑州网站优化渠道
  • 51zwd一起做网站搜索大全引擎入口
  • 健身网站怎么做怎么样才可以在百度上打广告
  • 广东网站建设报价官网网络营销成功案例分析其成功原因
  • 网站的站内结构锚文本是如何做的宁波seo在线优化
  • 肇庆网站建设百度免费推广方法
  • 网站建设资讯站怎么发帖子做推广
  • 软件外包公司怎么找业务什么是seo搜索优化
  • 官方网站怎么找怎么注册网站免费的
  • 怎么建设网站赚钱手机郑州seo优化顾问阿亮
  • 开发app费用seo关键字优化教程