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

leetcode 2563. 统计公平数对的数目

题目如下
在这里插入图片描述
数据范围
在这里插入图片描述

显然数组长度最大可以到10的5次方n方的复杂度必然超时,阅读题目实际上就是寻找两个位置不同的数满足不等式即可(实际上i j无所谓是哪个 我们只要把位置小的想成i就行)。
按照上面的思路我们只需要排序数组然后从前往后遍历数组然后利用二分查找寻找下界和上界的下标然后把下标相减就能得到答案。
值得注意的是这样计算会把结果翻倍(假设 1,2满足答案那么按照我们的算法1,2 2,1都会被统计所以结果要减半)

通过代码

class Solution {
public:int findlow(vector<int>& nums, int v, int target) {int n = nums.size();int l = 0, r = n - 1;int mid;while (l < r) {mid = (l + r) / 2;if (nums[mid] + v >= target) {r = mid;} else{l = mid + 1;}}if(nums[l] + v < target)return -1;//  cout << l;return l;}int findhigh(vector<int>& nums,int v, int target) {int n = nums.size();int l = 0, r = n - 1;int mid;while (l < r) {mid = (l + r + 1) / 2;if (nums[mid] + v > target) {r = mid - 1;} else{l = mid;}}if(nums[l] + v > target)return -1;return l;}long long countFairPairs(vector<int>& nums, int lower, int upper) {long long ans = 0;int n = nums.size();sort(nums.begin(), nums.end());int low, high;for (int i = 0; i < n; i++) {low = findlow(nums,nums[i],lower);high = findhigh(nums,nums[i],upper);if(low != -1 && high != -1){ans += high - low;//  cout << low << "-" << high << "\n";if(i < low || i > high){ans++;}}}return ans/2;}
};

在这里插入图片描述

http://www.lryc.cn/news/529950.html

相关文章:

  • Debian 10 中 Linux 4.19 内核在 x86_64 架构上对中断嵌套的支持情况
  • FLTK - FLTK1.4.1 - demo - bitmap
  • 数据结构 树1
  • android主题设置为..DarkActionBar.Bridge时自定义DatePicker选中日期颜色
  • MySQL 如何深度分页问题
  • 1.攻防世界easyphp
  • 深度学习 Pytorch 神经网络的学习
  • 如何利用天赋实现最大化的价值输出-补
  • Vue简介
  • three.js+WebGL踩坑经验合集(6.2):负缩放,负定矩阵和行列式的关系(3D版本)
  • 使用 OpenResty 构建高效的动态图片水印代理服务20250127
  • Kafka下载
  • 【C++语言】卡码网语言基础课系列----5. A+B问题VIII
  • IP服务模型
  • 仿真设计|基于51单片机的温湿度、一氧化碳、甲醛检测报警系统
  • QModbusTCPClient 服务器断开引起的程序崩溃
  • Vue 3 30天精进之旅:Day 11 - 状态管理
  • npm 和 pip 安装中常见问题总结
  • Flutter开发环境配置
  • Two Divisors ( Educational Codeforces Round 89 (Rated for Div. 2) )
  • 亚博microros小车-原生ubuntu支持系列:17 gmapping
  • Java面试题2025-并发编程进阶(线程池和并发容器类)
  • Stable Diffusion 3.5 介绍
  • 云计算部署模式全面解析
  • Vue 与 Electron 结合开发桌面应用
  • 数据库优化:提升性能的关键策略
  • 使用openAI与Deepseek的感受
  • pytorch实现长短期记忆网络 (LSTM)
  • 【ubuntu】双系统ubuntu下一键切换到Windows
  • 【PyTorch】6.张量形状操作:在深度学习的 “魔方” 里,玩转张量形状