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

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

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

  • 二分答案

朴素版

  • 双指针遍历数组 超过界限break

  •   auto check = [&](int mid) -> bool{int res=0;for(int i=0;i<n-1;i++)for(int j=i+1;j<n;j++){if(nums[j] - nums[i] > mid) break;elseif(++res >= k) return true;}return false;};
    

优化版

  • 双指针遍历 j找到位置以后直接+=j - i - 1个数对

  •   class Solution {public:int smallestDistancePair(vector<int>& nums, int k) {ranges::sort(nums);int n = nums.size();auto check = [&](int mid) -> bool{int res=0;for(int i=0,j=0;i<n-1;i++){while(j<n && nums[j] - nums[i] <= mid) j++;res += j - i - 1;if(res >= k) return true;}return false;};int l = 0,r = nums[n-1] - nums[0];while(l<r){int mid = l + r >> 1;if(check(mid)) r = mid;else l = mid + 1;}               return l;}};
    
http://www.lryc.cn/news/375262.html

相关文章:

  • 富格林:掌握可信出金交易策略
  • HCS-华为云Stack-容器网络
  • 【CSS in Depth2精译】1.1 层叠
  • 【读博日记】拓扑结构(待修正)
  • QT 中setVisible()和setEnabled()的区别
  • 速度(velocity)、加速度(acceleration)、急动度(jerk)和弹跳度(snap)傻傻分不清楚?
  • 【YashanDB知识库】PHP使用ODBC使用数据库绑定参数功能异常
  • 初级篇-Docker容器知识
  • 【抽代复习笔记】19-群(十三):奇偶置换、循环置换的几个定理及例题
  • RT-Thread简介及启动流程分析
  • MCU嵌入式AI开发笔记-视频笔记同步更新
  • DoIP——step2:车辆发现
  • 【动态规划】0-1背包问题
  • WordPress 高级缓存插件 W3 Total Cache Pro 详细配置教程
  • 每日一题——Python实现PAT乙级1012 数字分类(举一反三+思想解读+逐步优化)五千字好文
  • Unity2D游戏制作入门 | 13 ( 之人物三段攻击 )
  • DAY04 HTMLCSS
  • Linux_理解程序地址空间和页表
  • NAND闪存市场彻底复苏
  • 过拟合与正则化
  • VMware挂载NAS存储异常处理
  • Redis 7.x 系列【4】命令手册
  • 走进Elasticsearch
  • QT TCP服务器和客户端示例程序
  • Xlua三方库Android编译出错解决办法
  • 美国犹他州立大学《Nature Geoscience》(IF=18)!揭示草本植物对土壤有机碳的重要贡献!
  • 高考专业抉择计算机专业热度不减,兴趣、实力与挑战并存。
  • Flask-RQ
  • LeetCode 58. 最后一个单词的长度
  • 3阶段提交协议(3pc)