LeetCode 1891. 割绳子(二分查找)

文章目录

    • 1. 题目
    • 2. 解题

1. 题目

给定一个整数数组 ribbons 和一个整数 k,数组每项 ribbons[i] 表示第 i 条绳子的长度。

对于每条绳子,你可以将任意切割成一系列长度为正整数的部分,或者选择不进行切割。

例如,如果给你一条长度为 4 的绳子,你可以:

  • 保持绳子的长度为 4 不变;
  • 切割成一条长度为 3 和一条长度为 1 的绳子;
  • 切割成两条长度为 2 的绳子;
  • 切割成一条长度为 2 和两条长度为 1 的绳子;
  • 切割成四条长度为 1 的绳子。

你的任务是最终得到 k 条完全一样的绳子,他们的长度均为相同的正整数。
如果绳子切割后有剩余,你可以直接舍弃掉多余的部分。

对于这 k 根绳子,返回你能得到的绳子最大长度
如果你无法得到 k 根相同长度的绳子,返回 0。

示例 1:
输入: ribbons = [9,7,5], k = 3
输出: 5
解释:
- 把第一条绳子切成两部分,一条长度为 5,一条长度为 4- 把第二条绳子切成两部分,一条长度为 5,一条长度为 2- 第三条绳子不进行切割;
现在,你得到了 3 条长度为 5 的绳子。示例 2:
输入: ribbons = [7,5,9], k = 4
输出: 4
解释:
- 把第一条绳子切成两部分,一条长度为 4,一条长度为 3- 把第二条绳子切成两部分,一条长度为 4,一条长度为 1- 把第二条绳子切成三部分,一条长度为 4,一条长度为 4,还有一条长度为 1;
现在,你得到了 4 条长度为 4 的绳子。示例 3:
输入: ribbons = [5,7,9], k = 22
输出: 0
解释: 由于绳子长度需要为正整数,你无法得到 22 条长度相同的绳子。提示:
1 <= ribbons.length <= 10^5
1 <= ribbons[i] <= 10^5
1 <= k <= 10^9

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

2. 解题

  • 绳子长度 len 变长,那么得到的绳子的根数 k 不会变多,具有单调性,进行二分查找
class Solution {
public:int maxLength(vector<int>& ribbons, int k) {int l = 1, r = 1e5, len, ans = 0;while(l <= r){len = (l+r)>>1;if(ok(ribbons, len, k)){l = len+1;ans = len;}elser = len-1;}return ans;}bool ok(vector<int>& ribbons, int len, int k){int ct = 0;for(auto r : ribbons){ct += r/len;if(ct >= k)return true;}return false;}
};

152 ms 90.3 MB C++


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

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

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

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

相关文章

公需科目必须学吗_专业技术人员一般公需科目学习的通知

根据浙江省人力资源和社会保障厅《浙江省专业技术人员继续教育学时管理办法(试行)》(浙人社发〔2016〕63号)精神&#xff0c;专业技术人员每年度应参加继续教育不得少于90学时&#xff0c;其中专业科目不少于60学时&#xff0c;行业公需和一般公需科目不少于18学时。现将专业技…

php.ini开启命名空间,Zend Framework教程之模型Model基本规则和使用方法

本文实例讲述了Zend Framework教程之模型Model基本规则和使用方法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;这里讲讲Zend中的model。其实Zend中的Model处理是相当简单的。这主要得益于autoload功能。不像其它框架&#xff0c;为model定义复杂的基类。如果要定义…

LeetCode 1618. 找出适应屏幕的最大字号(二分查找)

文章目录1. 题目2. 解题1. 题目 给定一个字符串 text。并能够在 宽为 w 高为 h 的屏幕上显示该文本。 字体数组中包含按升序排列的可用字号&#xff0c;您可以从该数组中选择任何字体大小。 您可以使用FontInfo接口来获取任何可用字体大小的任何字符的宽度和高度。 FontInf…

UML类图画法及类之间几种关系

文章目录如下&#xff1a; 一、类图画法 二、类之间的几种关系&#xff1a;泛化&#xff08;Generalization&#xff09;、实现&#xff08;Realization&#xff09;、关联&#xff08;Association&#xff09;&#xff08;又分一般关联、聚合&#xff08;Aggregation&#xff…

web前端知识点太多_web前端常见知识点

csstable布局的缺点1、Table要比其它html标记占更多的字节。(延迟下载时间&#xff0c;占用服务器更多的流量资源。)2、Tablle会阻挡浏览器渲染引擎的渲染顺序。(会延迟页面的生成速度&#xff0c;让用户等待更久的时间。)3、Table里显示图片时需要你把单个、有逻辑性的图片切成…

python可变参数教学,Python函数可变参数详解

在实际使用函数时&#xff0c;可能会遇到“不知道函数需要接受多少个实参”的情况&#xff0c;不过好在 Python 允许函数从调用语句中收集任意数量的实参。例如&#xff0c;设计一个制作披萨的函数&#xff0c;我们知道&#xff0c;披萨中可以放置很多种配料&#xff0c;但无法…

LeetCode 1634. 求两个多项式链表的和

文章目录1. 题目2. 解题1. 题目 多项式链表是一种特殊形式的链表&#xff0c;每个节点表示多项式的一项。 每个节点有三个属性&#xff1a; coefficient&#xff1a;该项的系数。项 9x4 的系数是 9 。power&#xff1a;该项的指数。项 9x4 的指数是 4 。next&#xff1a;指向…

进制A~Z,全字母26进制转化

public String to26( int x ) { StringBuffer sBuffer new StringBuffer(); int cur; x; while( x > 0 ) { sBuffer.append((char)( (( cur x % 26 ) 0 ? 25 : cur - 1) A) );x / 26; if( cur 0 ) x--; } sBuffer.reverse(); return sB uffer.toString(); } private …

es6 类的私有属性_JavaScript ES6类中的私有属性

要扩展loganfsmyth的回答&#xff1a;JavaScript中唯一真正私有的数据仍然是作用域变量。不能以与公共属性相同的方式在内部访问私有属性&#xff0c;但是可以使用范围变量来存储私有数据。作用域变量这里的方法是使用构造函数的作用域(它是私有的)来存储私有数据。要使方法能够…

python编程制作接金币游戏,闪电侠接金币的FlashMan类

python the Flash man catch coin gif animation闪电侠是美剧&#xff0c;这里是一个小游戏&#xff0c;操作闪电侠接不断冒出来的金币。本模块定义了FlashMan类。这个模块能单独运行&#xff0c;运行后用鼠标操作闪电侠移动即可。以下是部分代码预览&#xff1a;""&…

LeetCode 1660. 纠正二叉树(BFS)

文章目录1. 题目2. 解题1. 题目 你有一棵二叉树&#xff0c;这棵二叉树有个小问题&#xff0c;其中有且只有一个无效节点&#xff0c;它的右子节点错误地指向了与其在同一层且在其右侧的一个其他节点。 给定一棵这样的问题二叉树的根节点 root &#xff0c;将该无效节点及其所…

MS SQL Server 常用操作

以下为常用&#xff1a; --发邮件应该很常用吧 exec msdb.dbo.sp_send_dbmailprofile_name mail_profile, --邮件配置主档&#xff0c;通过数据库邮件配置向导生成&#xff0c;一般叫dba_profile,详细看下图recipients email_recipients, --地址&#xff0c;多个用英文逗号隔…

arduino yun 京东_Arduino发布多款全新升级产品,宣布将成立Arduino基金会

上海2015年10月23日电 /美通社/ -- 10月18日上午&#xff0c;全球知名开源硬件供应商 Arduino 全球首席执行官 Federico Musto 现身上海创客嘉年华发表演讲。演讲中 Federico 发布了 Arduino Uno Pro、Arduino M0 S、 Arduino Leonardo XS、 Arduino Uno XS 以及机械手臂套件 B…

php 检测编码函数,自己写了一个php检测文件编码的函数

关于文件编码的检测&#xff0c;百度一下一大把都是&#xff0c;但是确实没有能用的、很多人建议 mb_detect_encoding 检测&#xff0c;可是不知为何我这不成功&#xff0c;什么都没输出、看到有人写了个增强版&#xff0c;用 BOM 判断的&#xff0c;我果断就无视了&#xff0c…

LeetCode 1730. 获取食物的最短路径(BFS)

文章目录1. 题目2. 解题1. 题目 你现在很饿&#xff0c;想要尽快找东西吃。你需要找到最短的路径到达一个食物所在的格子。 给定一个 m x n 的字符矩阵 grid &#xff0c;包含下列不同类型的格子&#xff1a; * 是你的位置。矩阵中有且只有一个 * 格子。 # 是食物。矩阵中可…

python线程任务run_python线程、进程知识梳理

一.python线程线程用于提供线程相关的操作&#xff0c;线程是应用程序中工作的最小单元。&#xff03;&#xff01;/ usr / bin / env python&#xff03; - * - coding&#xff1a;utf-8 - * -import threadingimport timedef show(arg)&#xff1a;time.sleep(1)printthread …

jrtplib使用注意事项

一、说明 RTP 现在的问题是要解决的流媒体的实时传输的问题的最佳方法。和JRTPLIB 是一个用C语言实现的RTP库。包含UDP通讯。刚使用JRTPLIB&#xff0c;对JRTPLIB的理解还不够深&#xff0c;当做使用时&#xff0c;积累的一些经验写个笔记吧。 二、RTP协议 实时传送协议&#x…

oracle字符串使用函数,Oracle常用函数介绍之一(字符串)

最近工作需要从Excel 导入一些数据&#xff0c;由于源数据的不规范&#xff0c;需要进行数据的清洗工作&#xff0c;需要自己把耽误多日的Oracle 函数重新巩固一下。搜集了一些网络资料&#xff0c;整理下来&#xff0c;以供自己以后查对。1. ASCII返回与指定的字符对应的十进制…

JAVA中获得一个月最大天数的方法(备忘)

Calendar 类是一个抽象类&#xff0c;为日历字段之间的转换提供了一些方法。其中有一个重要方法 getActualMaximum &#xff0c;该方法用于返回指定日历字段实际的最大值。 利用这个方法(Calendar.getActualMaximum)&#xff0c;我们可以获得某年某月的天数。 代码如下&#xf…

LeetCode 1874. 两个数组的最小乘积和

文章目录1. 题目2. 解题1. 题目 给定两个长度相等的数组a和b&#xff0c;它们的乘积和为数组中所有的a[i] * b[i]之和&#xff0c;其中 0 < i < a.length。 比如a [1,2,3,4]&#xff0c;b [5,2,3,1]时&#xff0c;它们的乘积和为 1*5 2*2 3*3 4*1 22 现有两个长…