算法——贪心算法

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

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

输出结果:


相关推荐

  1. 贪心算法

    2024-03-18 18:32:04       21 阅读
  2. 贪心算法

    2024-03-18 18:32:04       10 阅读
  3. 计算机算法贪心算法

    2024-03-18 18:32:04       41 阅读
  4. 算法-贪心算法

    2024-03-18 18:32:04       24 阅读
  5. 算法详解——贪心算法

    2024-03-18 18:32:04       18 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-18 18:32:04       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-18 18:32:04       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-18 18:32:04       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-18 18:32:04       18 阅读

热门阅读

  1. 程序员应该如何选择职业赛道?

    2024-03-18 18:32:04       17 阅读
  2. 鸿蒙内核系统

    2024-03-18 18:32:04       20 阅读
  3. 5.66 BCC工具之offwaketime.py解读

    2024-03-18 18:32:04       16 阅读
  4. 备份恢复新体验!pgBackRest与IvorySQL的完美融合

    2024-03-18 18:32:04       18 阅读