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

力扣 2616. 最小化数对的最大差值 题解

本题我讲二分法:

此题我认为最大的问题是看不懂题目意思:
注意此题 p 是给的下标对的个数,若为1,则找2个下标,为2,则找2个下标对,再求这两个下标对中差值最小的那个差值

而这个最大差值的最小值是啥意思呢?

是这个给的数组里面,最大的那个数和最小的那个数相减的绝对值叫做最大差值

而最小值是什么意思是找这给的这么多对里面的最小的那个差值

对于解法:

1,先假设定义最小差值为0,因为是绝对值,最大为整理后的最后一个数减开头一个数

2,之后就要不断二分缩小范围,更新最小差值left和最大差值right

3,条件有限制,要满足p对,所以要额外加条件

代码如下:

解释在下方

while 循环使得中间每个差值都能得到遍历,里面定义中间值,传入mid到相应函数若此中间差值满足里面有p对下标,且其最大差值都小于这个中间差值,则返回真,之后使右边最大差值缩放为中间差值减一,因为为左右闭区间二分,右边封闭,若不满足,则可用说明里面的此时的最大差值为上一次循环的mid,已经缩放到了最小,或者是里面p对的对数小于p,则使得下一次的mid往相对于此次mid再往右偏移一半再去找,下一次循环p的对数肯定会增加,,且下一次mid肯定会比次层mid的值更大,从而不断缩放缩放,直到左边差值大于右边差值,说明将所有差值遍历完毕,直到找到最小的left返回

http://www.xdnf.cn/news/14230.html

相关文章:

  • cpu微码大全 微码添加工具 八九代cpu针脚屏蔽图
  • c++ 右值引用移动构造函数
  • 功能安全实战系列10-英飞凌TC3xx_SRI总线监控开发
  • 动态代理选择:JDK vs CGLIB
  • 2.6 激光雷达消息格式
  • ESP32开发-ESP32P4环境配置
  • 【AD笔记】嘉立创元件导入到AD中(原理图-pcd-3D模型)
  • std::ifstream file(filename);详细解释
  • 十字滑台是否可以进行自动化控制?
  • window11等禁止系统更新的设置
  • 【数梦工场】【智慧航空AI大赛】比赛分享 阅读笔记
  • Hugging face 和 魔搭
  • 【论文阅读】Qwen2.5-VL Technical Report
  • Unity 对象层级处理小结
  • UI前端与大数据:如何构建实时数据分析系统?
  • 13_算法链与管道
  • 用于生成式新颖视图合成的密集 3D 场景完成
  • Hashcat使用教程:快速上手密码恢复工具
  • AUTOSAR图解==>AUTOSAR_SRS_OCUDriver
  • 力扣面试150题--添加与搜索单词 - 数据结构设计
  • Java延时
  • python中的模块化编程:日期模块、math算术模块、random模块
  • 温度对IO通信的影响
  • pythonday46
  • Python 标准库之 math 模块
  • 智慧水利可视化:水利水电工程数智化
  • 快速排序C++实现
  • IO扩展的一种简易方法
  • ECharts 图表生成示例
  • CentOS7报错:Cannot find a valid baseurl for repo: base/7/x86_64