贪心算法
  X5zJxoD00Cah 2023年11月02日 74 0
needed = set(["a", "b", "c", "d"]) # 传入一个数组,被转换为集合
 
knum = {}
knum["k1"] = set(["a", "b"])
knum["k2"] = set(["b", "c"])
knum["k3"] = set(["c", "d"])
knum["k4"] = set(["a", "b","c"])
 
final = set() # 使用一个集合来存储最终选择的方案
 
while needed:
    best = None # 将覆盖了最多的needed的方案存储进去
    max_covered = set() # 一个集合,包含该次循环中覆盖的最多needed
    
    for k, value in knum.items(): # 循环迭代每个方案并确定它是否是最佳的方案
        covered = needed & value # 计算交集
        if len(covered) > len(max_covered): # 检查该方案的覆盖范围是否比上一个多
            best = k # 如果多,就将该方案设置为best
            max_covered = covered
    # 在for循环遍历完所有方案以后,找到本次best
    needed -= max_covered # 更新needed
    final.add(best) # 在for循环结束后将best添加到最终的广播台列表中
    print(final) # 每次for循环结束打印本轮final方案
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  zLxnEsMLk4BL   2023年11月19日   31   0   0 数组字符串数组名
  gBkHYLY8jvYd   2023年11月19日   27   0   0 #include数组ci
  gBkHYLY8jvYd   2023年11月19日   23   0   0 cifor循环字符串
  X5zJxoD00Cah   2023年11月19日   19   0   0 数组单引号字符串
  gBkHYLY8jvYd   2023年12月10日   22   0   0 #include数组i++
X5zJxoD00Cah