最佳植树距离

#include <iostream>

#include <algorithm>

#include <vector>

using namespace std;

int minSpace(vector<int>& holes, int target)

{

sort(holes.begin(), holes.end());

int left = 0;

int right = holes.back() - holes.front();

int answer = -1;

while (left <= right)

{

int mid = left + (right - left) / 2;

int count = 1;

int previous = holes[0];

for (int i = 1; i < holes.size(); i++)

{

if (holes[i] - previous >= mid)

{

count++;

previous = holes[i];

if (count >= target)

{

answer = mid;

left = mid + 1;

break;

}

}

}

if (count < target)

{

right = mid - 1;

}

}

return answer;

}

int main()

{

int n;

cin >> n;

vector<int> holes(n);

for (int i = 0; i < n; i++)

{

cin >> holes[i];

}

int target;

cin >> target;

int result = minSpace(holes, target);

cout << result << endl;

return 0;

}

相关推荐
Neil今天也要学习几秒前
永磁同步电机无速度算法--永磁同步电机转子位置精确估计的误差抑制方法
算法
Irene19912 分钟前
JavaScript 常见算法复杂度总结(大O表示法)
javascript·算法
开心比对错重要10 分钟前
进程、线程、虚拟线程详解及线程个数设置
java·jvm·算法·面试
爱学大树锯20 分钟前
【594 · 字符串查找 II】
java·开发语言·算法
m0_6924571033 分钟前
图像噪点消除
人工智能·算法
2401_8414956434 分钟前
【Python高级编程】图着色动态可视化 APP
python·算法·matplotlib·tkinter·回溯法·图着色算法·动态可视化工具
刺客xs1 小时前
c++多线程 线程池的实现
开发语言·c++
福楠1 小时前
从C到C++ | 内存管理
c语言·c++
youngee111 小时前
hot100-53搜索旋转排序数组
数据结构·算法·leetcode
.简.简.单.单.1 小时前
Design Patterns In Modern C++ 中文版翻译 第十一章 享元模式
c++·设计模式·享元模式