leetcode 2616. 最小化数对的最大差值

news2024/9/27 19:27:25

在这里插入图片描述

在数组nums中找到p个数对,使差值绝对值的和最小。

思路:

最小差值应该是数值相近的一对数之间产生,让数值相近的数字尽量靠在一起方便计算,所以需要排序。
这里不去直接考虑一对对的数字,而是直接考虑差值的取值。

用binary search搜索一个差值。
左边界是0,右边界就是nums中的最大值 - 最小值(nums排序后最右边数字 - 最左边数字)。

确定mid = 差值,那么一对数字的差的绝对值如果 <= 这个差值,就说明满足,
遍历数组nums, 计算满足 <= 差值的数字有多少对,记为cnt对,
如果cnt >= p, 说明差值在mid内的数字对能达到p个,可以进一步缩小差值,right= mid.
反之需要left = mid+1.

class Solution {
    int n = 0;
    public int minimizeMax(int[] nums, int p) {
        n = nums.length;
        Arrays.sort(nums);
        int left = 0;
        int right = nums[n-1] - nums[0];

        while(left < right) {
            int mid = left + (right - left) / 2;
            if(canMakePairs(mid, nums, p)) {
                right = mid;
            } else {
                left = mid + 1;
            }
        }
        return left;
    }

    boolean canMakePairs(int mid, int[] nums, int p) {
        int cnt = 0;
        for(int i = 0; i < n-1 && cnt < p;i++){  //在这里限制cnt<p,因为p可以是0
            if(nums[i+1] - nums[i] <= mid) {
                cnt ++;
                i ++;  //加上for里面的i++,相当于i向右移动2位
            }
        }
        return cnt >= p;
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/853661.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

msvcp120.dll丢失的解决方法,哪种解决方法更实用

msvcp120.dll是Microsoft Visual C 2013库中的一个动态链接库文件。它包含了在使用Visual C 2013编译的应用程序中所需的函数和资源。这个文件通常用于在Windows操作系统上运行使用Visual C 2013编写的软件。如果缺少或损坏了msvcp120.dll文件&#xff0c;可能会导致相关软件无…

Wav2Lip实践

1. 安装 1.1 安装 conda以指定python版本运行环境 下载&#xff1a;Index of /https://repo.anaconda.com/archive/index.html 1.2 如按旧项目基于python3.6版本对话&#xff0c;会有很多包找不到的情况&#xff0c;经摸索后以python3.9构建成功&#xff0c; conda instal…

js代码加密,也能在vs code中进行?

在vs code中对js代码混淆加密 Vs code是常用的js代码编辑工具。本文演示如何在vs code中调用jshaman扩展&#xff0c;实现非常方便的js代码加密。 打开vs code&#xff1a; 点击左侧的“扩展”&#xff0c;打开后搜索“jshaman”。 &#xff08;JShaman是业界很有名的JS代码…

Stable Diffusion - 底部视角 (From Below) 拍摄的图像 LoRA 与配置

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/132192139 图像来源自 哥特风格 与 底部视角 的结合&#xff0c;更具有视觉冲击力。 从下面或底部 (From Below) 拍摄人物&#xff0c;可以创造出…

学C语言 | 位运算符<<的高级用法

前言 在上一篇文章中&#xff0c;我们介绍了~运算符的高级用法&#xff0c;本篇文章&#xff0c;我们将介绍<< 运算符的一些高级用法。 一、人物简介 第一位闪亮登场&#xff0c;有请今后会一直教我们C语言的老师 —— 自在。 第二位上场的是和我们一起学习的小白程序猿…

流量分析日志查看

一流量分析 buuctf wireshark 从题目出发&#xff0c;既然是上传登录信息&#xff0c;就直接过滤post请求&#xff0c;即搜索 http.request.methodPOST&#xff0c;因为上传用户登录信息使用的一定是http里的post方法 模式过滤 http.request.method “GET” http.request.…

数据要素市场之破四化建四化,拆墙又砌墙

摘要&#xff1a;8月8日&#xff0c;首届贵州科技节“2023数据要素流通关键技术论坛”在贵阳举行。此次论坛由贵州省科学技术协会指导&#xff0c;贵州省计算机学会主办&#xff0c;中国计算机学会贵阳会员活动中心、贵州轻工职业技术学院、贵州电子科技职业学院、贵州省大数据…

基于kubeadm部署K8S集群

目录 基于kubeadm部署K8S集群 一、环境准备 1、主机初始化配置 2、配置主机名并绑定hosts&#xff0c;不同主机名称不同 3、主机配置初始化 二、部署docker环境 1、三台主机上分别部署 Docker 环境 2、镜像加速器&#xff08;所有主机配置&#xff09; 三、部署kubern…

模拟实现消息队列

目录 1. 需求分析1.1 介绍一些核心概念核心概念1核心概念2 1.2 消息队列服务器&#xff08;Broker Server&#xff09;要提供的核心 API1.3 交换机类型1.3.1 类型介绍1.3.2 转发规则&#xff1a; 1.4 持久化1.5 关于网络通信1.5.1 客户端与服务器提供的对应方法1.5.2 客户端额外…

Android APK体积优化(瘦身)

1、基础知识&#xff1a; 1.1 apk结构 lib &#xff1a;存放so文件&#xff0c;对应不同的cpu架构 res &#xff1a;资源文件&#xff0c;layout、drawable等&#xff0c;经过aapt编译 assets &#xff1a;资源文件&#xff0c;不经过aapt编译 classes.dex &#xff1a;dx编译…

淘宝订单数据接口 淘宝订单API 获取商品订单详情 获取商品订单列表

淘宝订单数据分为&#xff1a;买家订单和卖家订单。买家订单为购买者这边的商品订单&#xff0c;卖家订单为商家店铺的商品订单。不管是买家订单还是卖家订单&#xff0c;获取订单数据都需要拿到授权。 买家订单列表详情接口 获取买家订单列表和详情数据&#xff0c;需要买家…

在线海报设计工具

今天&#xff0c;跟大家分享一个更加方便快捷的在线海报制作工具ioDraw&#xff0c;比PS更加容易操作&#xff0c;界面体验感更好。像一键制作手机或者电脑海报之类的需求&#xff0c;都能满足。 ioDraw作为一个在线制图工具&#xff0c;满足各种场景的设计需求&#xff0c;让每…

webshell免杀项目-ByPassBehinder(三)

ByPassBehinder / 冰蝎WebShell免杀生成 项目地址&#xff1a; https://github.com/Tas9er/ByPassBehinder ❌风险概述: 本工具仅限授权安全测试使用,禁止非法攻击未授权站点 ✴️文件MD5值校对 文件:ByPassBehinder.exe MD5 HASH:04caea5648786157fb65dd51d2bc061e &…

黑盒测试可不只是点点点,也需要会用各种测试工具~

对于不了解软件测试或者刚进行不久的人们来说&#xff0c;黑盒测试就是点点点&#xff0c;没有技术含量&#xff0c;但是我要说的&#xff0c;错&#xff01;黑盒测试也是一项极具技术含量的工作&#xff01; 首先说一下黑盒测试&#xff0c;从权威书籍《软件测试》的定义来说…

EPS FB 2.5S返回时延占比提升

一、 EPS FB 2.5s指标现状 3月初某区域的EPS FB返回时延占比为82.7%左右&#xff0c;离目标值83.98%还有1.2%。 二、 原因分析 EPS FB语音挂机后&#xff0c;UE在LTE恻可以通过快速返回Fast Return功能快速回到SA模式&#xff0c;4G侧快速返回功能为: 1、NR Coverage-Trigger…

【多线程系列-05】深入理解ThreadLocal的底层原理和基本使用

多线程系列整体栏目 内容链接地址【一】深入理解进程、线程和CPU之间的关系https://blog.csdn.net/zhenghuishengq/article/details/131714191【二】java创建线程的方式到底有几种&#xff1f;(详解)https://blog.csdn.net/zhenghuishengq/article/details/127968166【三】深入…

西安企业通配符https证书订购流程

通配符https证书可以保护主域名以及主域名下多个子域名的安全&#xff0c;例如*.example.com可以保护www.example.com、blog.example.com等所有以example.com结尾的子域名。这样不仅可以节省证书费用&#xff0c;也可以减少证书管理的工作量。 而企业通配符https证书是通配符ht…

实战指南:使用OpenCV 4.0+Python进行机器学习与计算机视觉

&#x1f482; 个人网站:【办公神器】【游戏大全】【神级源码资源网】&#x1f91f; 前端学习课程&#xff1a;&#x1f449;【28个案例趣学前端】【400个JS面试题】&#x1f485; 寻找学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼学习交流群】 目录 1.背景2. 安装和配…

2023河南萌新联赛第(五)场:郑州轻工业大学--买爱心气球

题目链接&#xff1a;A-买爱心气球_2023河南萌新联赛第&#xff08;五&#xff09;场&#xff1a;郑州轻工业大学 (nowcoder.com) 题目描述 Alice 和 Bob 是一对竞技编程选手&#xff0c;他们路过了一家气球店&#xff0c;发现有 m 个大爱心气球和 n 个小爱心气球。他们决定玩…

视频网站如何选择国外服务器?

​ 视频网站如何选择国外服务器? 地理位置&#xff1a;选择靠近目标用户群体的国外服务器位置是至关重要的。若用户主要集中在中国以外的地区&#xff0c;因您应选择位于用户所在地附近的服务商&#xff0c;以确保视频的传输速度。 带宽和速度&#xff1a;选择带宽足够且方便升…