文章目录

  • 1. 题目
  • 2. 解题

1. 题目

假设我们在一条水平数轴上,列表 stations 来表示各个加油站的位置,加油站分别在 stations[0], stations[1], ..., stations[N-1] 的位置上,其中 N = stations.length。

现在我们希望增加 K 个新的加油站,使得相邻两个加油站的距离 D 尽可能的最小,请你返回 D 可能的最小值

示例:
输入:stations = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], K = 9
输出:0.500000注:
stations.length 是在范围 [10, 2000] 内的整数
stations[i] 是在范围 [0, 10^8] 内的整数
K 是在范围 [1, 10^6] 内的整数
在 10^-6 以内的正确值会被视为正确的答案

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/minimize-max-distance-to-gas-station
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

LeetCode 1231. 分享巧克力(极小极大化 二分查找)

  • 模板题,预先求出每个站之间的距离,二分查找 d,检查最小间距d下,K个站够不够
class Solution {public:double minmaxGasDist(vector<int>& stations, int K) {int n = stations.size();vector<int> dis(n-1);for(int i = 1; i < n; ++i){dis[i-1] = stations[i]-stations[i-1];//加油站之间的距离}double l = 0, r = 1e8+1, d, ans;while(r-l >= 1e-7){d = (l+r)/2.0;if(isok(dis,d,K)){r = d;ans = d;}elsel = d;}return ans;}bool isok(vector<int>& dis, double d, int K){ //每个站之间的相邻距离为 d, 增加 K 个站够吗?int need = 0;for(int i = 0; i < dis.size(); ++i){need += ceil(dis[i]/d)-1;}return need <= K;}
};

68 ms 13.3 MB


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

LeetCode 774. 最小化去加油站的最大距离(极小极大化 二分查找)相关推荐

  1. 力扣 774. 最小化去加油站的最大距离 二分答案

    774. 最小化去加油站的最大距离 整数数组 stations 表示 水平数轴 上各个加油站的位置.给你一个整数 k . 请你在数轴上增设 k 个加油站,新增加油站可以位于 水平数轴 上的任意位置,而 ...

  2. leetcode 分享巧克力 java_LeetCode 1231. 分享巧克力(极小极大化 二分查找)

    文章目录 1. 题目 2. 解题 1. 题目 你有一大块巧克力,它由一些甜度不完全相同的小块组成.我们用数组 sweetness 来表示每一小块的甜度. 你打算和 K 名朋友一起分享这块巧克力,所以你 ...

  3. LeetCode 1552. 两球之间的磁力(极小极大化 二分查找)

    文章目录 1. 题目 2. 解题 1. 题目 在代号为 C-137 的地球上,Rick 发现如果他将两个球放在他新发明的篮子里,它们之间会形成特殊形式的磁力. Rick 有 n 个空的篮子,第 i 个 ...

  4. LeetCode 1231. 分享巧克力(极小极大化 二分查找)

    文章目录 1. 题目 2. 解题 1. 题目 你有一大块巧克力,它由一些甜度不完全相同的小块组成.我们用数组 sweetness 来表示每一小块的甜度. 你打算和 K 名朋友一起分享这块巧克力,所以你 ...

  5. LeetCode 410. 分割数组的最大值(极小极大化 二分查找 / DP)

    文章目录 1. 题目 2. 解题 2.1 二分查找 2.2 DP 1. 题目 给定一个非负整数数组和一个整数 m,你需要将这个数组分成 m 个非空的连续子数组. 设计一个算法使得这 m 个子数组各自和 ...

  6. LeetCode 1981. 最小化目标值与所选元素的差(DP)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个大小为 m x n 的整数矩阵 mat 和一个整数 target . 从矩阵的 每一行 中选择一个整数,你的目标是 最小化 所有选中元素之 和 与 ...

  7. LeetCode 2071. 你可以安排的最多任务数目(二分查找)

    文章目录 1. 题目 2. 解题 1. 题目 给你 n 个任务和 m 个工人.每个任务需要一定的力量值才能完成,需要的力量值保存在下标从 0 开始的整数数组 tasks 中,第 i 个任务需要 tas ...

  8. LeetCode 4. 寻找两个有序数组的中位数(二分查找,难)

    文章目录 1. 题目 2. 解题 2.1 合并数组 2.2 优化2.1解法,双指针 2.3 二分法(找第k个数) 2.4 切分法 1. 题目 给定两个大小为 m 和 n 的有序数组 nums1 和 n ...

  9. leetcode 911. Online Election | 911. 在线选举(加强堆 + 二分查找)

    题目 https://leetcode.com/problems/online-election/ 题解 我的解法是,用预计算(加强堆,O(nlogn)) + 二分查找(用的自带TreeMap,查找复 ...

最新文章

  1. 如果说编程语言是一种宗教,你的信仰是?
  2. Java开发命名规范总结
  3. 棱镜调查:提高渠道兼容性从游戏设计开始
  4. linux:gpg加密和解密
  5. Java中FileInputStream和FileOutputStream类实现文件夹及文件的复制粘贴
  6. 写让别人能读懂的代码
  7. 基于ECC算法的秘钥协商
  8. SharePoint 2013中修改windows 活动目录(AD)域用户密码的WebPart(免费下载)
  9. 计算机视觉基础-图像处理 Task06 边缘检测
  10. MySql 存储过程 光标只循环一次
  11. java infinity 处理_Java:如何执行向-Infinity而不是0的整数除法?
  12. Java编程题——打印“ X ”图形
  13. Turbo码基本框架
  14. 大数据可视化常用的方式有哪些
  15. asp.net+mvc+html辅助,ASP.NET MVC使用Ajax的辅助的解决方法
  16. APP开发选择什么框架好? 请看这里!
  17. 11 系统建模语言SysML实例——蒸馏器
  18. 防止网络钓鱼攻击的10种方法...
  19. css之-各种基本图形画法总结(css3.0)
  20. Myth源码解析系列之九-总结

热门文章

  1. django-rest-swagger显示接口备注内容
  2. Django删除多对多表关系 :
  3. api商品分享源码_SSM框架高并发和商品秒杀项目高并发秒杀API源码免费分享
  4. python tfidf特征变换_机器学习的“万能模板” - 数据分析
  5. 平衡小车卡尔曼滤波算法
  6. Linux中samba的权限详解,活用三种权限 理解Samba的权限控制
  7. android mysql 数据库文件_android mysql数据库文件
  8. python3图片转代码_python3图片转换二进制存入mysql示例代码
  9. android竖直和横向,如何在android中为纵向和横向模式定义不同的控件
  10. python-day2