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

那些做环保网站的好/服装市场调研报告

那些做环保网站的好,服装市场调研报告,汉中网站建设电话,dw做网站怎么设置页面音乐2563. 统计公平数对的数目 给你一个下标从 0 开始、长度为 n 的整数数组 nums &#xff0c;和两个整数 lower 和 upper &#xff0c;返回 公平数对的数目 。 如果 (i, j) 数对满足以下情况&#xff0c;则认为它是一个 公平数对 &#xff1a; 0 < i < j < n&#xff0c…

2563. 统计公平数对的数目

给你一个下标从 0 开始、长度为 n 的整数数组 nums ,和两个整数 lower 和 upper ,返回 公平数对的数目 。
如果 (i, j) 数对满足以下情况,则认为它是一个 公平数对 :
0 <= i < j < n,且
lower <= nums[i] + nums[j] <= upper
示例 1:
输入:nums = [0,1,7,4,4,5], lower = 3, upper = 6
输出:6
解释:共计 6 个公平数对:(0,3)、(0,4)、(0,5)、(1,3)、(1,4) 和 (1,5) 。
示例 2:
输入:nums = [1,7,9,2,5], lower = 11, upper = 11
输出:1
解释:只有单个公平数对:(2,3) 。
提示:
1 <= nums.length <= 105
nums.length == n
-109 <= nums[i] <= 109
-109 <= lower <= upper <= 109


题解

还是找数对,这次要找和在一定区间 [lower,upper] 的数对
对于每一个数 i ,满足条件的另一个数就是区间 [lower - i,upper - i]内的数
于是我们不妨枚举所有数字 i ,找到[lower - i,upper - i]内数的个数再相加即可

那么接下来的问题就是如何快速找到[lower - i,upper - i]内数的个数

由于是查找一个区间内数的个数,我们不妨将数组nums进行排序,从后往前找到第一个<=upper的数nums[ r ] 和第一个>lower的数nums[ l ],那么区间内的数就有 r - l 个(nums[ l ]是区间外的)
有一点需要注意:每一个 i 我们找的是其右边的另一个数字,所以还需要(l+1,r)之间且大于 i 的数,即 max(i,r) - max(i,l)个
但是对于每一个数字 i 如果我们都从后往前找的话时间复杂度就是 n^2 了,太大了,需要进行优化

不难注意到(注意力惊人),随着数组排序,我们枚举的数字 i 是递增的,那么区间[lower - i,upper - i]是递减的
l 与 r 是随着枚举单调递减的
这样对于每一个 i 的 l 与 r 就不需要再次从后往前寻找,直接从上一次的位置往前找即可
循环结束 i 遍历一次nums,l 与 r 也最多遍历一次nums,时间复杂度就从 n^2 优化为 nlogn(瓶颈在排序)

发现排序后区间[lower - i,upper - i]的单调性是关键


代码如下↓

class Solution {
public:long long countFairPairs(vector<int>& nums, int lower, int upper) {int n=nums.size();sort(nums.begin(),nums.end());int l=n-1;int r=n-1;long long res=0;for(int x=0;x<n;x++){while(l && nums[l]+nums[x]>=lower){l--;}while(r && nums[r]+nums[x]>upper){r--;}res+=max(x,r)-max(x,l);}return res;}
};
http://www.whsansanxincailiao.cn/news/31986912.html

相关文章:

  • 甘肃电子商务网站建设/百度竞价点击一次多少钱
  • 悦诗风吟网站建设策划书/电销系统软件排名
  • 网站的数据库做备份/重庆企业站seo
  • 美食网站建设项目规划书/扬州百度推广公司
  • 做网站文案/厦门百度关键词推广
  • 莲湖免费做网站/企业网站首页
  • 深圳做网站个人/it培训机构学费一般多少
  • 优秀高端网站建设服务商/服务外包公司
  • 莱州网站建设青岛华夏商务网/seo整站优化一年价格多少
  • 网站建设欣赏/网店推广方案策划书
  • 做网站专用图标/万网
  • 国外做连接器平台网站/谷歌广告优化师
  • 手机网站展示/品牌宣传策略
  • 内蒙营销型网站建设/北京百度推广优化
  • 手机网站开发看什么书/线上营销方式6种
  • 网站设计公司推荐/免费男女打扑克的软件
  • 贵州做农业网站/seo和sem的联系
  • 嘉兴网站开发学校/热点新闻事件及评论
  • 优势网网站/seo排名软件
  • 那个b2b网站可以做外贸/手机百度最新正版下载
  • 商业空间设计方案/山东seo推广公司
  • 51制作视频mv网站/seo排名哪家有名
  • 深圳网站制作价格/百度站长提交网址
  • 东莞网站建设多少钱/百度公司总部
  • 触屏版网站制作/制作网页需要多少钱
  • p2p网站建设制作/天津seo网站管理
  • wordpress关键词工具/关键词优化排名软件推荐
  • 做网站前期需要准备什么/总裁培训班
  • 汽车网站建设毕业论文/西安seo专员
  • 做免费嗳暧视频网站/游戏推广员怎么做