博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python leetcode-502-IPO
阅读量:4115 次
发布时间:2019-05-25

本文共 1282 字,大约阅读时间需要 4 分钟。

题目:IPO

内容:

假设 LeetCode 即将开始其 IPO。为了以更高的价格将股票卖给风险投资公司,LeetCode希望在 IPO 之前开展一些项目以增加其资本。

由于资源有限,它只能在 IPO 之前完成最多 k 个不同的项目。帮助 LeetCode 设计完成最多 k 个不同项目后得到最大总资本的方式。

给定若干个项目。对于每个项目 i ,它都有一个纯利润 P i,并且需要最小的资本 C i 来启动相应的项目。最初,你有 W 资本。当你完成一个项目时,你将获得纯利润,且利润将被添加到你的总资本中。

总而言之,从给定项目中选择最多 k 个不同项目的列表,以最大化最终资本,并输出最终可获得的最多资本。

实列:

输入: k=2, W=0, Profits=[1,2,3], Capital=[0,1,1].输出: 4解释: 由于你的初始资本为 0,你尽可以从 0 号项目开始。在完成后,你将获得 1 的利润,你的总资本将变为 1。此时你可以选择开始 1 号或 2 号项目。由于你最多可以选择两个项目,所以你需要完成 2 号项目以获得最大的资本。因此,输出最后最大化的资本,为 0 + 1 + 3 = 4。

注意:

  1. 假设所有输入数字都是非负整数。
  2. 表示利润和资本的数组的长度不超过 50000。
  3. 答案保证在 32 位有符号整数范围内。

代码如下:

def ipo(K, W, Profit, Capital):    while K > 0:        K -= 1        Profits = []        S = []        if W == 0:            for index, value in enumerate(Capital):                if value == 0:                    Profits.append(Profit[index])                    W = max(Profits)                           if W > 0:            for i in range(len(Capital)):                s = Profit[i] - Capital[i]                S.append(s)            max_index = S.index(max(S))            W += Profit[max_index]        return W

分析:

首先,通过不断迭代K(项目),然后判断W(资本),判断其是否为0, 如果为0的话,则首先选择启动资金Capital也为0的项目,然后判断Captial=0时,选择对应Profit位置中最大值。如果W不为零,则遍历所有Profit和Capital的差值, 去对应最大值, 最后求得最大值所有,再累加到W上。直至到最后一个K为止,结束循坏,返回结果。

总结:

多思考,多练习!

转载地址:http://vpwpi.baihongyu.com/

你可能感兴趣的文章
跨浏览器纯JavaScript QRCode二维码插件【附DEMO源码】
查看>>
基于Threejs可着色和旋转的3D模型动画特效,附学习源码
查看>>
15种漂亮的css3 loading动画特效【源码案例】
查看>>
从原型图到成品:步步深入 CSS 布局
查看>>
JS艺术二维码生成插件
查看>>
CSS选择器从右向左的匹配规则
查看>>
年薪50万-200万招人!
查看>>
【源码案例】纯CSS3 Material Design风格单选框和复选框
查看>>
这5个Ajax的坑,你踩过几个?
查看>>
介绍4种用JavaScript将布尔值转换为整数数字的方法
查看>>
8种CSS3按钮动画特效【附源码】
查看>>
【视频教程】Javascript ES6 教程02— ES6 let vs const 关键字
查看>>
【视频教程】帝国CMS制作网站系列教程07
查看>>
【视频教程】Javascript ES6 教程01— var let const声明变量
查看>>
Vue3.0 来了,明年的面试问什么?
查看>>
带你入门 CSS Grid 布局
查看>>
2020前端工程师脱贫宝典,凭啥他能月薪30K+?
查看>>
浅析5种Javascript继承关系的应用
查看>>
介绍3种JavaScript重定向到另一个网页的方法
查看>>
CSS3鼠标hover图片超酷遮罩层动画特效
查看>>