点击查看:贪心算法模块精讲

题目描述:
  • 有n个人,第i个人重量为wi,每艘船的最大重量均为C,且最多只能乘两个人。用最少的船装载所有人。
题目分析:
  • 贪心策略:考虑最轻的人 i ,如果每个人都无法和他一起坐船(重量和超过C),则唯一的方案是每个人坐一艘船。否则,他应该选择能和他一起坐船的人中最重的一个 j 。
题解代码:
public class Main{public static void main(String [] args){int [] w = {4,2,1,3,5,6,7,8,10,9};int n = w.length;    //  总人数int c = 10;         // 船能承载的最大重量int countBoat = 0;  // 记录用船的数量Arrays.sort(w);int p1 = 0;       // p1索引 代表排在前面重量最轻的人int p2 = n-1;     // p2索引 代表排在后面重量最重 的人while(n>0){      //  河岸这边还有人,执行循环  if(p1+p2>c){    // 如果:最轻+最重 > 船的载重,最重的胖子自己一条船p2 --;    // 最重的人的索引-1n --;    //  总人数 -1countBoat ++;    // 用船的数量+1}else{p1++;p2--;n= n-2;     //  一次载两个人,so -2countBoat ++; }}System.out.println(countBoat);}
}
运行结果: 5

贪心算法--乘船问题(easy)相关推荐

  1. 贪心算法--乘船问题

    贪心算法--乘船问题 描述: 有n个人,第i个人的重量为wi,每艘船的最大载重量为c:且最多只能成两个人,用最少的船装载所有的人: 思路: 选择最轻的人i,他应该选择能和他做一艘船的最重的一个人j一起 ...

  2. 乘船问题(贪心算法)

    乘船问题(贪心算法) 问题描述 乘船问题:有N个人,第I个人重量为wi,每艘船的载重上限为C,且最多乘2人.用最少的船装载所有人,求需最少的船数量. 解题思路 首先我们确定该题的要求是:求需最少的船数 ...

  3. 基础算法 —— 贪心算法

    [概述] 贪心算法是从问题的初始状态出发,通过若干次的贪心选择而得到的最优值的一种求解策略,即贪心策略. 简单来说,贪心策略是一种在每次决策时采取当前意义下最优策略的算法,做出的选择至少在某种约束条件 ...

  4. 总结 贪心算法_这几道经典例题帮你轻松搞透贪心算法

    贪心算法概念叙述 运用贪心算法求解问题时,会将问题分为若干个子问题,可以将其想象成俄罗斯套娃,利用贪心的原则从内向外依次求出当前子问题的最优解,也就是该算法不会直接从整体考虑问题,而是想要达到局部最优 ...

  5. 总结 贪心算法_用经典例题轻松帮你搞定贪心算法

    转自:奶糖猫 贪心算法概念叙述 运用贪心算法求解问题时,会将问题分为若干个子问题,可以将其想象成俄罗斯套娃,利用贪心的原则从内向外依次求出当前子问题的最优解,也就是该算法不会直接从整体考虑问题,而是想 ...

  6. 【信息学奥赛一本通 提高组】第一章 贪心算法

    一.贪心算法的特点: 1.贪心选择: 所谓贪心选择是指应用同一规则,将原问题变为一个相似的但规模更小的子问题,而后的每一步都是当前看似最佳的选择,且这种选择只依赖于已做出的选择,不依赖未做出的选择. ...

  7. java经典算法思想 贪心_这几道经典例题帮你轻松搞透贪心算法

    贪心算法概念叙述 运用贪心算法求解问题时,会将问题分为若干个子问题,可以将其想象成俄罗斯套娃,利用贪心的原则从内向外依次求出当前子问题的最优解,也就是该算法不会直接从整体考虑问题,而是想要达到局部最优 ...

  8. 算法学习--动态规划与贪心算法

    动态规划与贪心算法都是一种递推算法,都是用局部最优解来推导全局最优解:是对遍历解空间的一种优化:当问题具有最优子结构时,可以用动态规划来解决,而贪心算法是动态规划的特例 动态规划 1. 动态规划的思想 ...

  9. 算法补天系列之——前缀树+贪心算法

    介绍前缀树 经典的前缀树,字符都是在路上的,节点是为了边的存在而存在的,有路就可以复用. 那么前缀树对应的数据结构是什么样的呢? 对于节点构建结构,设置一个int pass(表示路径途径这个节点的次数 ...

最新文章

  1. wordpress必装的插件 wp最常用的十个插件
  2. 这年头连人用脑机接口信号都能无线传输了,瘫痪者可在家轻松上网看视频
  3. rest开发_REST 101开发人员专用
  4. Axis2 WebService(配置、发布、调用)
  5. Python手写神经网络实现3层感知机
  6. MYSQL数据库实验三多表查询_数据库之 MySQL --- 数据处理 之多表查询 (三)
  7. 小程序 switch 自定义_微信小程序自定义组件问题一:获取组件DOM元素
  8. NoSQL架构的几幅图
  9. 卫星通信 | 使用虹科SAF手持式频谱分析仪进行TDD信号分析
  10. 《通信原理》awgn信道仿真
  11. html超链接本地链接,为何本地连接变成本地连接2连接
  12. iPhone突然掉电快是什么情况,该如何解决?
  13. B站笔试真题之[编程题]扭蛋机
  14. JAVA默认永久代大小_jvm——metaspace代替永久代
  15. Java-Object转JSONObject
  16. char 与 unsign char的转换
  17. 想要支持扩展的手机浏览器?狐猴浏览器你绝对不能错过
  18. 施乐700彩机服务器维修,佳铭办公设备:施乐彩机维修代码
  19. shell基础之04
  20. 构建数字经济新生态,和数区块链结合隐私计算可发挥作用

热门文章

  1. 最新免费版 Office 全家桶Copilot,Gamma+MindShow 两大ChatGPT AI创意工具GPT-4神器助力高效智能制作 PPT,一键生成,与AI智能对话修改PPT(免安装)
  2. 从“防护型”到“操作型”——现代安全发展之未来
  3. 【http】xss和csrf 攻击
  4. C语言如何加缓冲,C语言学习笔记之输出缓冲
  5. 安装gromacs报错记录
  6. 如何从内容的角度迅速对作品的影视价值进行判断
  7. root改名字,root重命名
  8. 定格动画影片 - 重订相片与影片的分野 --转载
  9. java基础08 双重循环打印图形
  10. 虚幻4渲染编程(材质进阶篇)【第一卷:影视剧各种衣料--上】