当前位置: 首页 > news >正文

算法——贪心算法

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

# 首先创建一个表,包含所覆盖的州
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)

输出结果:


相关文章:

  • Elasticsearch:从 Java High Level Rest Client 切换到新的 Java API Client
  • Layui表格复选框下一页后保持选中,table复选框checkbox跨页保持复选状态
  • [QJS xmake] 非常简单地在Windows下编译QuickJS!
  • 第十三届蓝桥杯省赛CC++ 研究生组
  • Python-GEE绘制DEM精美图片
  • 某小厂java后端初面,记录一下
  • Python 实现1~100之间的偶数求和
  • 【Datawhale组队学习:Sora原理与技术实战】使用KAN-TTS合成女生沪语音频
  • Centos7安装ffmpeg
  • 【Mysql数据库基础02】单行函数、排序
  • 【计算机网络篇】物理层(2)传输方式
  • 2024-3-18-C++day6作业
  • 大数据--hdfs--java编程
  • Linux docker1--环境及docker安装
  • go反射实战
  • 微信小程序订阅消息授权弹窗事件
  • Python函数学习
  • 考研机试题
  • docker内部无法使用ping等网络工具解决方案
  • vscode中编写Markdown
  • 价格周报|供需回归僵局,本周生猪均价与上周基本持平
  • 宇树科技王兴兴:第一桶金来自上海,欢迎上海的年轻人加入
  • 中国一重集团有限公司副总经理陆文俊被查
  • 安徽亳州涡阳县司法局党组书记刘兴连落马
  • 股价两天涨超30%,中航成飞:不存在应披露而未披露的重大事项
  • 追光|铁皮房、土操场,这有一座“筑梦”摔跤馆