[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
相关推荐
一刀到底2112 分钟前
java 开发中 nps的内网穿透 再git 远程访问 以及第三放支付接口本地调试中的作用
java·开发语言·git
灏瀚星空11 分钟前
Tesseract 字库介绍与训练指南
经验分享·笔记·爬虫·python
love530love25 分钟前
【笔记】解决启动Anaconda Toolbox报错ModuleNotFoundError: No module named ‘pysqlite2‘
开发语言·人工智能·windows·笔记·python·conda
梦醒沉醉26 分钟前
Python教程(七)——错误和异常
python
编程自留地28 分钟前
第12次05: 用户中心-用户基本信息
python·django·商城
知福致福31 分钟前
服务器上用脚本跑python深度学习的注意事项(ubantu系统)
运维·服务器·python
helloworld工程师33 分钟前
如何使用 Redis 实现排行榜功能
java·开发语言·缓存
破刺不会编程1 小时前
linux中基础IO(上)
linux·运维·服务器·开发语言
不爱吃饭爱吃菜1 小时前
uniapp小程序开发,判断跳转页面是否需要登录方法封装
开发语言·前端·javascript·vue.js·uni-app
蹦蹦跳跳真可爱5892 小时前
Python----神经网络(基于ResNet的汽车分类)
人工智能·python·深度学习·神经网络·汽车