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

【Leetcode 每日一题】1552. 两球之间的磁力

问题背景

在代号为 C-137 的地球上,Rick 发现如果他将两个球放在他新发明的篮子里,它们之间会形成特殊形式的磁力。Rick 有 n n n个空的篮子,第 i i i 个篮子的位置在 p o s i t i o n [ i ] position[i] position[i] M o r t y Morty Morty 想把 m m m 个球放到这些篮子里,使得任意两球间 最小磁力 最大。
已知两个球如果分别位于 x x x y y y,那么它们之间的磁力为 ∣ x − y ∣ |x - y| xy
给你一个整数数组 p o s i t i o n position position 和一个整数 m m m,请你返回最大化的最小磁力。

数据约束

  • n = p o s i t i o n . l e n g t h n = position.length n=position.length
  • 2 ≤ n ≤ 1 0 5 2 \le n \le 10 ^ 5 2n105
  • 1 ≤ p o s i t i o n [ i ] ≤ 1 0 9 1 \le position[i] \le 10 ^ 9 1position[i]109
  • 所有 p o s i t i o n position position 中的整数 互不相同
  • 2 ≤ m ≤ p o s i t i o n . l e n g t h 2 \le m \le position.length 2mposition.length

解题过程

最小化最大值,考虑二分答案法。
和 扩展题 几乎完全一致,直接修改代码都能通过。

具体实现

class Solution {
    public int maxDistance(int[] position, int m) {
        Arrays.sort(position);
        int left = 1;
        int right = (position[position.length - 1] - position[0]) / (m - 1) + 1;
        while (left < right) {
            int mid = left + ((right - left) >>> 1);
            if (check(position, mid) >= m) {
                left = mid + 1;
            } else {
                right = mid;
            }
        }
        return left - 1;
    }

    private int check(int[] position, int power) {
        int res = 1;
        int pre = position[0];
        for (int item : position) {
            if (item >= pre + power) {
                res++;
                pre = item;
            }
        }
        return res;
    }
}

相关文章:

  • 工业光源中的偏光板
  • ArrayList、LinkedList、Vector
  • CSS 实现下拉菜单效果实例解析
  • 什么是偏光环形光源
  • 深入浅出CSS复合选择器:掌控元素关系与层级选择
  • 【linux】在 Linux 服务器上部署 DeepSeek-r1:70b 并通过 Windows 远程可视化使用
  • Java面试第一山!《集合》!
  • 差分的性质
  • STM32 是什么?同类产品有哪些
  • 用SiliconFlow的接口调用 deepseek-ai/Janus-Pro-7B 模型生成 图像
  • Java面试宝典:说下Spring Bean的生命周期?
  • 制造业物联网的十大用例
  • 【机器学习实战】kaggle背包价格预测(堆叠的实战用法)
  • 03【FreeRTO队列-如何获取任务信息与队列的动静态创建】
  • yarn add electron --dev --platform=win64 报错 certificate has expired 2025年 解决办法
  • 高并发场景下,如何用无锁实现高性能LRU缓存?
  • 网络安全尹毅 《网络安全》
  • 北斗导航 | 周跳探测算法(matlab源码)
  • 自反馈与流量震荡:从 TCP/IP 路由到交通导航
  • 量化噪声介绍
  • 北京编程培训学校哪个好/关键词seo优化公司
  • 媒体广告投放平台/windows优化大师卸载不了
  • 开通网站的请示/站长之家素材
  • 深圳搜索seo优化排名/seo链接优化建议
  • 临沂网站设计/公司seo是什么意思
  • 做mip网站需要多钱/廊坊关键词快速排名