[Python] 贪心算法简单版

贪心算法-简单版

贪心算法的一般使用场景是给定一个列表ls, 让你在使用最少的数据的情况下达到或超过n .

我们就来使用上面讲到的这个朴素的例题来讲讲贪心算法的基本模板:

2-1.排序

既然要用最少的数据, 我们就要优先用大的数据拼 , 为了实现这个效果, 我们得先给列表从大到小排序.

python 复制代码
sorted(ls, reverse = True)
# 别忘了reverse = True从大到小

2-2.选择

我们需要遍历列表, 每次选出现在的元素, 记录当前总和和累加次数, 当总和大于等于n时, 结束循环.

python 复制代码
tot = 0
cnt = 0
# 注意一个很容易错的地方, 这里的语句顺序不可改变!
for l in ls:
	tot += l
	if tot >= n:
		break
	cnt += 1

2-3.完整简单版模板

注释版:

python 复制代码
# 输入
n = int(input())
ls = [int(i) for i in input().split()]

# 排序
sorted(ls, reverse = True)

# 主要算法, 摘大苹果
tot = 0
cnt = 0
for l in ls:
	tot += l
	if tot >= n:
		break
	cnt += 1

记忆版:

python 复制代码
n = int(input())
ls = [int(i) for i in input().split()]
sorted(ls, reverse = True)
tot = 0
cnt = 0
for l in ls:
	tot += l
	if tot >= n:
		break
	cnt += 1
相关推荐
WJSKad12359 分钟前
如何评价ControlNet v1.1的InPaint版本?[特殊字符]
python
共享家952712 分钟前
C++ string 类从原理到实战
开发语言·c++
xuansec15 分钟前
【JavaEE安全】JNDI 注入从原理到实战:RMI、LDAP 与高版本绕过
python·安全·java-ee
库奇噜啦呼16 分钟前
【iOS】Effective Objective-C第一章
开发语言·ios·objective-c
进击的雷神24 分钟前
前端路由动态渲染、JSON内嵌HTML清洗、展位信息数组化、分页参数固定化——尼日利亚展会爬虫四大技术难关攻克纪实
前端·爬虫·python·json
不会写DN28 分钟前
Go 语言并发编程的 “工具箱”
开发语言·后端·golang
叶宇燚34 分钟前
Java整理--数据结构篇
java·开发语言·数据结构
晚枫歌F40 分钟前
btree B树实现key-value存储
开发语言·数据结构
foundbug99943 分钟前
多智能体三维编队飞行控制MATLAB实现
开发语言·matlab
炸膛坦客1 小时前
单片机/C语言八股:(七)C 程序运行时内存布局的动态变化
c语言·开发语言