leetcode 502 IPO
class Solution:
def findMaximizedCapital(self, k: int, W: int, Profits, Capital) -> int:
#将利润和资本通过zip函数,转化成1对1的列表
num=[x for x in zip(Profits,Capital)]
#将利润从小到大排序
num.sort()
while k and num:
#利用条件从利润最大的条件往前选,把项目资本大于当前资本W的,踢出去,选择满足条件的。
i=len(num)-1
while i>=0 and num[i][1]>W:
i-=1
#如果只剩下第一个,则终止循环
if i<0:
break
W+=num[i][0]
num.pop(i)
k-=1
return W
- 总结
该题目的解法思路参考劈里啪啦同学的解法,让我理解了这道题的含义。