您现在的位置是:首页 > 后台技术 > 数据结构与算法数据结构与算法

贪心算法(图文)

第十三双眼睛2023-10-22【数据结构与算法】人已围观

简介贪心算法

贪心算法
package com.xingchen.day016;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
public class Greedy {
    public static void main(String[] args) {
        //创建广播电脑集合
        Map<String, HashSet<String>> map = new HashMap<>();
        HashSet<String> set1 = new HashSet<>();
        set1.add("北京");
        set1.add("上海");
        set1.add("天津");
        HashSet<String> set2 = new HashSet<>();
        set2.add("广州");
        set2.add("北京");
        set2.add("深证");
        HashSet<String> set3 = new HashSet<>();
        set3.add("成都");
        set3.add("上海");
        set3.add("杭州");
        HashSet<String> set4 = new HashSet<>();
        set4.add("上海");
        set4.add("天津");
        HashSet<String> set5 = new HashSet<>();
        set5.add("杭州");
        set5.add("大连");
        map.put("k1", set1);
        map.put("k2", set2);
        map.put("k3", set3);
        map.put("k4", set4);
        map.put("k5", set5);
        Set<String> all = new HashSet<>();
        all.add("北京");
        all.add("上海");
        all.add("天津");
        all.add("广州");
        all.add("深证");
        all.add("成都");
        all.add("杭州");
        all.add("大连");
        List<String> selectList = new ArrayList<>();
        //定义一个临时集合.保存在遍历过程中
        Set<Object> tempSet = new HashSet<>();
        String maxKey = null;
        while (all.size() != 0) {//只要all不为0,就说明还没有覆盖完全
            //每次循环开始,将maxKey置空
            maxKey = null;
            for (String key: map.keySet()) {
                tempSet.clear();
                HashSet<String> temp = map.get(key);
                tempSet.addAll(temp);
                // 交集会赋值给tempSet
                tempSet.retainAll(all);
                if (tempSet.size() > 0 && (maxKey == null || tempSet.size()> map.get(maxKey).size())) {
                    maxKey = key;
                }
            }
            if (maxKey != null) {
                selectList.add(maxKey);
                all.removeAll(map.get(maxKey));
            }
        }
        System.out.println("得到的结果时"+ selectList);
    }
}

Tags:

很赞哦! ()

文章评论

    共有条评论来说两句吧...

    用户名:

    验证码:

本站推荐

站点信息

  • 网站名称:JavaStudy
  • 建站时间:2019-1-14
  • 网站程序:帝国CMS7.5
  • 文章统计242篇文章
  • 标签管理标签云
  • 统计数据百度统计
  • 微信公众号:扫描二维码,关注我们