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

719. 找出第 K 小的数对距离

目录

  • 题目
  • 解法

题目

数对 (a,b) 由整数 a 和 b 组成,其数对距离定义为 a 和 b 的绝对差值。

给你一个整数数组 nums 和一个整数 k ,数对由 nums[i] 和 nums[j] 组成且满足 0 <= i < j < nums.length 。返回 所有数对距离中 第 k 小的数对距离。

解法

class Solution {
public:int smallestDistancePair(vector<int>& nums, int k) {sort(nums.begin(), nums.end());int n = nums.size(), left = 0, right = nums.back() - nums.front();while (left <= right) {int mid = (left + right) / 2;int cnt = 0;for (int j = 0; j < n; j++) {int i = lower_bound(nums.begin(), nums.begin() + j, nums[j] - mid) - nums.begin();cnt += j - i;}if (cnt >= k) {right = mid - 1;} else {left = mid + 1;}}return left;}
};

和之前一道题一样,查找和的范围,这会儿查找差的范围果然来了。

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

相关文章:

  • 【图像压缩感知】论文阅读:Self-supervised Scalable Deep Compressed Sensing
  • Swift 宏(Macro)入门趣谈(一)
  • linux常见资源查询命令(持续更新)
  • JavaWeb:文件上传1
  • C++ 中的异常处理机制是怎样的?
  • SwiftUI-基础入门
  • C++builder中的人工智能(20):如何在C++中开发一个简单的Hopfield网络
  • video2gif容器构建指南
  • 探秘Spring Boot中的@Conditional注解
  • 树形dp总结
  • 【算法一周目】双指针(2)
  • vue内置方法总结
  • 面向对象分析与设计
  • lineageos-19 仓库群遍历,打印第一条git log
  • 详解基于C#开发Windows API的SendMessage方法的鼠标键盘消息发送
  • VMware安装黑苹果后ICLOUD_UNSUPPORTED_DEVICE(不支持的Icloud设备)
  • Python | Leetcode Python题解之第542题01矩阵
  • 【计算机网络】【传输层】【习题】
  • 【LeetCode】【算法】55. 跳跃游戏
  • 华为:hcia综合实验
  • MyBatis与MyBatis-Plus(基础)
  • 一文总结java语法规则
  • 使用 npm 安装 Yarn
  • vue3中利用路由信息渲染菜单栏
  • Mysql每日一题(行程与用户,困难※)
  • adb 命令 查找启动的包名以及导出安装包
  • Flink_DataStreamAPI_输出算子Sink
  • 标准C++ 字符串
  • 时序预测:多头注意力+宽度学习
  • day06(单片机)IIC+STH20