题目在这:https://leetcode-cn.com/problems/maximum-ice-cream-bars/
思路分析:
题目比较好理解。我们可以直接使用排序函数对数组进行排序,然后从最便宜的开始买,买到总金额大于我们手里的钱为止。
时间复杂度区别就在于排序了。
这道题也是考察排序方法。
法一:
先试用传统库函数的方法。
完整代码:
costs.sort()
res = 0
now_sum_pricr = 0
if coins < costs[0]:
print(0)
return 0
else:
for i in costs:
if now_sum_pricr + i <= coins:
now_sum_pricr += i
res += 1
print(res)
return
百度了一下 python3使用的sorted()方法是Timsort。没了解过,不过时间复杂度还挺奥的,sort和sorted都差不多。基本都在205ms上下。
法二:
可以用快排来试试这道题看看时间复杂度怎么样。一会回来再更新