解读python中贪婪算法

Python 投稿 45100 0 评论

解读python中贪婪算法

贪婪算法

这时候有人会问,不是最准确的答案我要她干嘛?但是在日常中,我们有时候会遇到一些我们无法处理的问题,甚至是要花费成吨的资源也无法很好解决的问题

假如我们现在很富有,家里有好多地皮造房子,这时候你需要找最少的施工队伍去帮我们同时造房子

现在一共有4个施工队伍,每个队伍负责的区域如下我放在一个字典里

house_haved =set( ["杨浦","徐汇","崇明","虹口","黄浦","普陀","闵行","宝山"] ) constructionTeam = {"one":set(["杨浦","徐汇","崇明"]),"two":set(["崇明","虹口","黄浦"]),"three":set(["虹口","黄浦"]),"four":set(["虹口","普陀","闵行","宝山"])}

 创建一个用过存放最终结果的集合

final_teams=set()

 循环取队伍判断能覆盖最多未覆盖的地区的队伍

取house_haved和team_cover的交集和best_covered比较, 循环出best_covered

while house_haved : 
    best_team=None
    best_covered = set()
    for team , team_cover in constructionTeam.items(): 
        covered = house_haved & team_cover
        if len(covered) > len(best_covered): 
            best_team = team
            best_covered = covered
    final_teams.add(best_team)
    house_haved -= best_covered

编程笔记 » 解读python中贪婪算法

赞同 (47) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽