wordpress head,seo技术培训课程,深圳官方宣布解封时间,家用宽带做网站服务器文章目录1. 题目2. 解题1. 题目
有一些原木#xff0c;现在想把这些木头切割成一些长度相同的小段木头#xff0c;需要得到的小段的数目至少为 k。 当然#xff0c;我们希望得到的小段越长越好#xff0c;你需要计算能够得到的小段木头的最大长度。
木头长度的单位是厘米…
文章目录1. 题目2. 解题1. 题目
有一些原木现在想把这些木头切割成一些长度相同的小段木头需要得到的小段的数目至少为 k。 当然我们希望得到的小段越长越好你需要计算能够得到的小段木头的最大长度。
木头长度的单位是厘米。原木的长度都是正整数我们要求切割得到的小段木头的长度也要求是整数。 无法切出要求至少 k 段的,则返回 0 即可。
示例
样例 1
输入:
L [232, 124, 456]
k 7
输出: 114
Explanation: 我们可以把它分成114cm的7段而115cm不可以样例 2
输入:
L [1, 2, 3]
k 7
输出: 0
说明:很显然我们不能按照题目要求完成。https://tianchi.aliyun.com/oj/231203672248052266/245580596369363585
2. 解题
二分查找模板题
class Solution {
public:/*** param L: Given n pieces of wood with length L[i]* param k: An integer* return: The maximum length of the small pieces*/int woodCut(vectorint L, int k) {// write your code hereint l 1, r INT_MAX, mid, maxlen 0;while(l r){mid l((r-l)/2);if(ok(L, mid, k))// 每段 mid 长度能切出来 k 根吗{maxlen mid;l mid1;}elser mid-1;}return maxlen;}bool ok(vectorint L, int len, int k){int count 0;for(int i 0; i L.size(); i){count L[i]/len;}return count k;}
};我的CSDN博客地址 https://michael.blog.csdn.net/
长按或扫码关注我的公众号Michael阿明一起加油、一起学习进步