算法——贪心算法

《算法图解》------贪心算法

复制代码
# 首先创建一个表,包含所覆盖的州
states_needed = set(['mt','wa','or','id','nv','ut','az']) # 传入一个数组,转换成一个集合

#可供选择的广播台清单
stations = {}
stations['kone'] = set(['id','nv','ut']) #用集合表示想要覆盖的州,且不能包含重复元素
stations['ktwo'] = set(['wa','id','mt'])
stations['kthree'] = set(['or','nv','ca'])
stations['kfour'] = set(['nv','ut'])
stations['kfive'] = set(['ca','az'])

#用一个集合来表示最后选择的广播台
final_stations = set()

""" 计算答案 """

#遍历所有广播台,计算覆盖最多未覆盖州的广播台

while states_needed:
	best_station = None
	states_coverd = set()
	for station, states in stations.items(): 
		coverd = states_needed & states # 	求交集。
		if len(coverd) > len(states_coverd):  # coverd 包含在states_needed和states_for_station 中的州。检查该州是否比best_station覆盖的多。
			best_station = station
			states_coverd = coverd
	
	states_needed -= states_coverd
	final_stations.add(best_station)	# 如果是就把best_station 设置为当前广播台

print(final_stations)

输出结果:


相关推荐
SatanII5 天前
Kubernetes 认证与授权详解:守护集群API访问安全
安全·贪心算法·kubernetes
一去不复返的通信er6 天前
贪心算法-合并区间(LeetCode 56)
算法·leetcode·贪心算法
L0208247 天前
Kubernetes Service 与 kube‑proxy 深度详解
运维·算法·云原生·容器·贪心算法·kubernetes
stolentime8 天前
CF2277E Tree Guessing题解
c++·算法·贪心算法·交互·ad-hoc
stolentime11 天前
SOS DP学习笔记
c++·笔记·学习·算法·贪心算法·动态规划·二进制
闲云自留地18 天前
Kubernetes 安装保姆级:关 swap、装 containerd、init 集群、calico 一篇通
容器·贪心算法·kubernetes
倒头就睡的小比特19 天前
贪心算法介绍
算法·贪心算法
启观川20 天前
数据结构与算法-第 3 章 常用算法-贪心算法
数据结构·笔记·python·算法·贪心算法
Logic10123 天前
C语言/数据结构欧几里得算法题解:长方形切割最大正方形——贪心划分计数
c语言·数据结构·算法·贪心算法·时间复杂度·空间复杂度·欧几里得算法
小宋102124 天前
OpenTelemetry GenAI可观测性实战:串起模型、工具、Token与错误
java·人工智能·算法·贪心算法