小扣打算给自己的 VS code 安装使用插件,初始状态下带宽每分钟可以完成 1 个插件的下载。假定每分钟选择以下两种策略之一:

  • 使用当前带宽下载插件
  • 将带宽加倍(下载插件数量随之加倍)

请返回小扣完成下载 n 个插件最少需要多少分钟。

注意:实际的下载的插件数量可以超过 n 个

示例 1:

输入:n = 2

输出:2

解释:
以下两个方案,都能实现 2 分钟内下载 2 个插件

  • 方案一:第一分钟带宽加倍,带宽可每分钟下载 2 个插件;第二分钟下载 2 个插件
  • 方案二:第一分钟下载 1 个插件,第二分钟下载 1 个插件

示例 2:

输入:n = 4

输出:3

解释:
最少需要 3 分钟可完成 4 个插件的下载,以下是其中一种方案:
第一分钟带宽加倍,带宽可每分钟下载 2 个插件;
第二分钟下载 2 个插件;
第三分钟下载 2 个插件。

提示:

  • 1 <= n <= 10^5

示例代码:

class Solution(object):def leastMinutes(self, n):""":type n: int:rtype: int"""cur = 1count = 0while n > 0:if n <= cur:n -= curcount += 1else:cur *= 2count += 1return count

贪心算法,如果选择当前这一分钟不下载而是加倍,那么这个选择至少是跟不加倍是一样好的。举个例子,目前下载是a,这一分钟和下一分钟,下载量就是2a,加倍这一分钟和下一分钟的下载量也是0+2a = 2a。只有一种情况例外,那就是当前需要下载插件的剩余数量小于a,一分钟可以搞定,那就不需要加倍。
所以每一步判断剩余数量是不是需要超过一分钟就好了,超过一分钟,那就加倍。

示例代码2:

class Solution(object):def leastMinutes(self, n):""":type n: int:rtype: int"""cur = 1count = 0while n > cur:cur *= 2count += 1return count + 1

下载插件(贪心算法)相关推荐

  1. 刷题:力扣-LCS 01. 下载插件

    小扣打算给自己的 VS code 安装使用插件,初始状态下带宽每分钟可以完成 1 个插件的下载.假定每分钟选择以下两种策略之一: 使用当前带宽下载插件 将带宽加倍(下载插件数量随之加倍) 请返回小扣完 ...

  2. 基于贪心算法求解TSP问题(JAVA)

    前段时间在搞贪心算法,为了举例,故拿TSP来开刀,写了段求解算法代码以便有需之人,注意代码考虑可读性从最容易理解角度写,没有优化,有需要可以自行优化! 详细 代码下载:http://www.demod ...

  3. 双“11”搞促销?用贪心算法盘它

    作者 | 王磊 来源 | Java中文社群(ID:javacn666) 头图 |  CSDN 下载自东方IC 这几年商家为了刺激消费是变着花样的推出各种各样的活动,以某多多为首的运营式电商更是让我们看 ...

  4. tsp java_基于贪心算法求解TSP问题(JAVA)

    前段时间在搞贪心算法,为了举例,故拿TSP来开刀,写了段求解算法代码以便有需之人,注意代码考虑可读性从最容易理解角度写,没有优化,有需要可以自行优化! 一.TPS问题 TSP问题(Travelling ...

  5. python贪心算法最短路径_dijkstra算法(贪心算法)——解决最短路径问题

    最短路径 给定一张带权图和其中的一个点(作为源点),求源点到其余顶点的最短路径 基本思想 1)源点u,所有顶点的集合V,集合S(S中存有的顶点,他们到源点的最短路径已经确定,源点u默认在S中),集合V ...

  6. C#,背包问题(Knapsack Problem)贪心算法的源代码

    背包问题(KnapSack Problem)的相关算法是常用的规划算法. 一.什么是背包问题? 背包的问题是,你有一个"袋子",可以装有限数量的物品,鉴于你有一组物品可以从每个物品 ...

  7. 基于贪心算法的马踏棋盘哈密顿回路问题

    基于贪心算法的马踏棋盘哈密顿回路问题 Github 链接 问题分析 马踏棋盘其实相当于一个解空间的搜索问题,而遍历到每一个节点并要求最后可以回到起点本质上是一个哈密顿回路问题 目前大部分马踏棋盘的相关 ...

  8. python 实现贪心算法

    文章目录 贪心算法 一. 算法概述 1. 简介 2. 基本步骤 二. 基本实现 1. 实例 2. 分析步骤 3. 代码实现 三. 数模实战 1. 题目展示 2. 题目分析 2.1 公式 2.2 实现 ...

  9. 贪心算法 背包问题 java_贪心算法解背包问题

    背包问题:与0-1背包问题类似,所不同的是在选择物品i装入背包时,可以选择物品i的一部分,而不一定要全部装入背包,1 <= i <= n.这2类问题都具有最优子结构性质,极为相似,但背包问 ...

最新文章

  1. 【BZOJ】 2463 [中山市选2009]谁能赢呢?(博弈论)
  2. php 单利模式实例化,php-单例模式实现mysql实例化对象
  3. WinForm窗体缩放动画
  4. arch linux 入门,arch linux 从来就不是给新手入门用的
  5. 进入其他网络共享计算机,局域网内如何进入其他电脑,两个电脑利用无线建立局域网-...
  6. Oracle中如何删除重复数据
  7. c语言设计底层,【学习小总结】C语言的底层开发
  8. sql取字段前4位_SQL学习之旅(7)
  9. 机器学习-吴恩达-笔记-11-异常检测
  10. Linux之touch命令
  11. 【动画消消乐】HTML+CSS 自定义加载动画 053
  12. 围棋打谱软件 android,MultiGo(围棋打谱工具)
  13. 微信公众号配置模板消息
  14. 数据分析~matlab plot 坐标、字体、子图
  15. 电脑代理上网和共享上网
  16. 用html计算长方形的面积公式,长方形的面积公式
  17. SpringAOP中@within和@annotation的区别
  18. oracle11g 使用数据泵导出导入数据
  19. 软件测试需要学习什么
  20. html5 2019新年祝福页面,2019最新创意暖心新年祝福语 简单的祝福 - 中国万年历

热门文章

  1. 几经沉浮,人工智能前路何方?
  2. 一张图,看编程语言十年热度变化
  3. 潘石屹Python考试成绩99分,网友:还有一分怕你骄傲
  4. 武汉大学提出ARGAN:注意力循环生成对抗模型用于检测、去除图像阴影 | ICCV 2019...
  5. 免费学习AI公开课:打卡、冲击排行榜,还有福利领取
  6. AI和大数据如何落地智能城市?京东城市这6篇论文必读 | KDD 2019
  7. 维基百科联手谷歌翻译,结果“惨不忍睹”!
  8. 人工智能灵魂注入,燃烧你的卡路里——2018,你AI了吗!?
  9. 手动特征工程已经OUT了!自动特征工程才是改进机器学习的方式
  10. 听说数据标注行业缺“中立”平台,京东金融竖起了大旗