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

我找别人做的网站现在不管了怎么办承德在线招聘

我找别人做的网站现在不管了怎么办,承德在线招聘,建行官方网站登录,长沙培训网站制作应用场景——集合覆盖问题 假设存在下面需要付费的广播台,以及广播台信号可以覆盖的地区。如何选择最少的广播台,让所有的地区都可以接收到信号 贪心算法介绍 1.贪心算法是指在对问题进行求解时,在每一步选择中都采取最好或者最优的选择 2…
应用场景——集合覆盖问题

假设存在下面需要付费的广播台,以及广播台信号可以覆盖的地区。如何选择最少的广播台,让所有的地区都可以接收到信号

贪心算法介绍

1.贪心算法是指在对问题进行求解时,在每一步选择中都采取最好或者最优的选择

2.贪心算法得到的结果不一定是最优的结果,但是都是相对近似最优解的结果

思路分析

使用贪心算法的效率非常高,选择策略上,由于需要覆盖全部小区的所有集合:

1.遍历所有的广播电台,找到一个覆盖了最多未覆盖地区的电台(此电台可能包含一些已覆盖的地区,但没有关系)

2.将这个电台加入到一个集合中(比如 ArrayList),想办法把该电台覆盖的地区在下次比较时去掉

3.重复第 1 步直到覆盖了全部的地区

用代码实现集合覆盖问题
public class GreedyAlgorithm {public static void main(String[] args) {//创建广播电台,放入到 MapHashMap<String, HashSet<String>> broadcasts = new HashMap<>();//将各个电台放入到 broadcastsHashSet<String> hashSet1 = new HashSet<>();hashSet1.add("北京");hashSet1.add("上海");hashSet1.add("天津");HashSet<String> hashSet2 = new HashSet<>();hashSet2.add("广州");hashSet2.add("北京");hashSet2.add("深圳");HashSet<String> hashSet3 = new HashSet<>();hashSet3.add("成都");hashSet3.add("上海");hashSet3.add("杭州");HashSet<String> hashSet4 = new HashSet<>();hashSet4.add("上海");hashSet4.add("天津");HashSet<String> hashSet5 = new HashSet<>();hashSet5.add("杭州");hashSet5.add("大连");//加入到 Mapbroadcasts.put("k1", hashSet1);broadcasts.put("k2", hashSet2);broadcasts.put("k3", hashSet3);broadcasts.put("k4", hashSet4);broadcasts.put("k5", hashSet5);//allAreas 存放所有地区HashSet<String> allAreas = new HashSet<>();allAreas.add("北京");allAreas.add("上海");allAreas.add("天津");allAreas.add("广州");allAreas.add("深圳");allAreas.add("成都");allAreas.add("杭州");allAreas.add("大连");//创建 ArrayList,存放选择的电台集合ArrayList<String> selects = new ArrayList<>();//定义一个临时的集合,在遍历过程中,存放遍历过程中电台覆盖的地区和当前还没有覆盖的地区的交集HashSet<String> tempSet = new HashSet<>();/*定义一个 maxKey,保存在一次遍历过程中,能够覆盖最大未覆盖地区的电台的 key如果 maxKey 不为 null,则会加入到 selects*/String maxKey = null;while (allAreas.size() != 0) {  //如果 allAreas 不为 0,则表示还没有覆盖到所有的地区//每进行一次 while,需要maxKey = null;//遍历 broadcasts,取出对应 keyfor (String  key : broadcasts.keySet()) {//每进行一次 fortempSet.clear();//当前这个 key 能够覆盖的地区HashSet<String> areas = broadcasts.get(key);tempSet.addAll(areas);//求出 tempSet 和 allAreas 集合的交集,交集会赋给 tempSettempSet.retainAll(allAreas);//如果当前这个集合包含的未覆盖地区的数量,比 maxKey 指向的集合地区还多//就需要重置 maxKey// (maxKey == null || tempSet.size() > broadcasts.get(maxKey).size()) 体现出贪心的特点if (tempSet.size() > 0 &&(maxKey == null || tempSet.size() > broadcasts.get(maxKey).size())) {maxKey = key;}}//maxKey != null,就应该将 maxKey 加入 selectsif (maxKey != null) {selects.add(maxKey);//将 maxKey 指向的广播电台覆盖的地区,从 allAreas 去掉allAreas.removeAll(broadcasts.get(maxKey));}}System.out.println("得到的选择结果是" + selects);}
}
http://www.yayakq.cn/news/867215/

相关文章:

  • 昆明网站词排名优化wordpress搜索即时显示
  • 网络彩票建立网站中国建筑测评官网
  • 广宁网站建设河北邢台新河网
  • 网站方案设计与论证旅游平台网站建设方案
  • 网站建设的技术可行性分析芜湖做公司网站的
  • 番禺网站建设策划seodg官网
  • 建网站 可以看到访客吗品牌建设是指什么的行为过程
  • 如何设计购物网站免费推广途径有哪些
  • 被攻击网站影响网站速度的代码
  • 网站内容优化的准则装修网名字大全
  • 体育西网站开发定制吉林市城市建设管理执法局网站
  • 主播网站建立江苏省住房和城乡建设厅网站首页
  • 上的网站appwordpress标签云修改
  • 信宜做网站设置dedecms确定网站风格
  • 网站可以做参考文献吗wordpress 域名更改
  • 程序员自己做项目的网站手机免费制作ppt
  • 九江市建设工程门户网站wordpress博客站点地图
  • 玫琳凯网站建设与推广方案游戏开发与网站开发哪个难
  • 中国最好的网站制作建网站如果不买域名别人能不能访问
  • 品牌网站建设d小蝌蚪营业推广策划方案
  • 自己做卖东西的网站微信登录入口官网
  • 企业网站建设作用提供企业网站建设公司
  • 做百度网站要注意什么wordpress 转义
  • 商洛网站制作服装网站开发
  • 韶关做网站需要多少钱用服务器建立网站吗
  • zend studio 网站开发公司网站建设的心得
  • 有公众号要不要做网站书画网站 建设方案
  • 网站搜索 收录优化十堰市建设网站的公司
  • 中跃建设集团网站吗网站建设培训机构哪里好
  • 购物网站怎么做如何扫描一个网站的漏洞