[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
相关推荐
若愚67923 分钟前
前端取经路——JavaScript修炼:悟空的九大心法
开发语言·前端·javascript
Tiger Z5 分钟前
R 语言科研绘图第 45 期 --- 桑基图-和弦
开发语言·r语言·贴图
sukalot7 分钟前
window 显示驱动开发-线程和同步级别为零级
java·开发语言·驱动开发
两点王爷8 分钟前
Java 中的数据结构--简单汇总
java·开发语言·数据结构
GIS思维9 分钟前
ArcGIS Pro图斑属性自动联动更新-在线卫星底图图斑采集
python·arcgis·arcgis pro·deepseek
子豪-中国机器人9 分钟前
第 14 届蓝桥杯 C++ 青少组省赛中 / 高级组真题解析
java·开发语言·数据结构
Komorebi_999914 分钟前
javascript:void(0) 是一个常见的 JavaScript 伪协议
开发语言·javascript·ecmascript
zuiyuewentian17 分钟前
pywinauto通过图片定位怎么更加精准的识别图片?
开发语言·python
程序员小远21 分钟前
Jenkins+Newman实现接口自动化测试
自动化测试·软件测试·python·测试工具·职场和发展·jenkins·测试用例
点云SLAM22 分钟前
C++中指针使用详解(4)指针的高级应用汇总
开发语言·c++·指针应用·函数指针与回调机制·指针与继承、虚函数表·指针模拟多态和接口·指针与并发