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

jsp网站开发实现增删改查网页设计培训的课程培训价格

jsp网站开发实现增删改查,网页设计培训的课程培训价格,健身器材 网站模版,传奇手游996盒子下载应用场景——集合覆盖问题 假设存在下面需要付费的广播台,以及广播台信号可以覆盖的地区。如何选择最少的广播台,让所有的地区都可以接收到信号 贪心算法介绍 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/461730/

相关文章:

  • 为什么很多中国人去菲律宾做网站wordpress极简商城主题
  • wordpress网页上传网站建设方案优化
  • 西安企业模板建站seo外包公司多少钱
  • 博客网站登录保定seo
  • 网站地址怎么做超链接广东网站建设制作价格
  • 个人空间网站免费域名备案后网站打不开
  • 优质的网站制作泰安市卓创网络科技有限公司
  • 网站建设服务有哪些网站做哪种推广好
  • 扬州网站建设哪家公司好专业网站的定义
  • 网站布局内容html5 网站推荐
  • 如何做网站运营wordpress后台满
  • 无锡网站外包软文营销的作用
  • 使用html5的网站wordpress默认amp
  • 南通的互联网公司网站安徽蚌埠怀远县建设局网站
  • 成立一个网站平台要多少钱私密浏览器免费看片在线看
  • 常州网站外包网页设计实训报告心得
  • 找不同 网站开发网络营销服务商
  • 百度数据网站企业如何建设网站
  • 专业南京网站建设云南住房和城乡建设部网站
  • 北京网站建设案例wordpress换域名了 登陆不了
  • 做搜狗网站点击赚钱猪八戒网站建设公司
  • 网站屏蔽ip重庆装修公司排名前十强
  • 外资公司在国内注册流程做推广优化的网站有哪些
  • 上传文章的网站微博营销的技巧有哪些
  • 青岛专业做外贸网站咨询公司名字
  • 做网站业务员提成几个点网站创建数据库
  • 网站这么设置微信支付宝温州网站 公司
  • 求个网站这么难吗2021年wordpress模板+免费
  • 宿州北京网站建设站长统计在线观看
  • 南京做企业号微网站营销成都专业seo公司