贪心算法--乘船问题(easy)
点击查看:贪心算法模块精讲
题目描述:
- 有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)相关推荐
- 贪心算法--乘船问题
贪心算法--乘船问题 描述: 有n个人,第i个人的重量为wi,每艘船的最大载重量为c:且最多只能成两个人,用最少的船装载所有的人: 思路: 选择最轻的人i,他应该选择能和他做一艘船的最重的一个人j一起 ...
- 乘船问题(贪心算法)
乘船问题(贪心算法) 问题描述 乘船问题:有N个人,第I个人重量为wi,每艘船的载重上限为C,且最多乘2人.用最少的船装载所有人,求需最少的船数量. 解题思路 首先我们确定该题的要求是:求需最少的船数 ...
- 基础算法 —— 贪心算法
[概述] 贪心算法是从问题的初始状态出发,通过若干次的贪心选择而得到的最优值的一种求解策略,即贪心策略. 简单来说,贪心策略是一种在每次决策时采取当前意义下最优策略的算法,做出的选择至少在某种约束条件 ...
- 总结 贪心算法_这几道经典例题帮你轻松搞透贪心算法
贪心算法概念叙述 运用贪心算法求解问题时,会将问题分为若干个子问题,可以将其想象成俄罗斯套娃,利用贪心的原则从内向外依次求出当前子问题的最优解,也就是该算法不会直接从整体考虑问题,而是想要达到局部最优 ...
- 总结 贪心算法_用经典例题轻松帮你搞定贪心算法
转自:奶糖猫 贪心算法概念叙述 运用贪心算法求解问题时,会将问题分为若干个子问题,可以将其想象成俄罗斯套娃,利用贪心的原则从内向外依次求出当前子问题的最优解,也就是该算法不会直接从整体考虑问题,而是想 ...
- 【信息学奥赛一本通 提高组】第一章 贪心算法
一.贪心算法的特点: 1.贪心选择: 所谓贪心选择是指应用同一规则,将原问题变为一个相似的但规模更小的子问题,而后的每一步都是当前看似最佳的选择,且这种选择只依赖于已做出的选择,不依赖未做出的选择. ...
- java经典算法思想 贪心_这几道经典例题帮你轻松搞透贪心算法
贪心算法概念叙述 运用贪心算法求解问题时,会将问题分为若干个子问题,可以将其想象成俄罗斯套娃,利用贪心的原则从内向外依次求出当前子问题的最优解,也就是该算法不会直接从整体考虑问题,而是想要达到局部最优 ...
- 算法学习--动态规划与贪心算法
动态规划与贪心算法都是一种递推算法,都是用局部最优解来推导全局最优解:是对遍历解空间的一种优化:当问题具有最优子结构时,可以用动态规划来解决,而贪心算法是动态规划的特例 动态规划 1. 动态规划的思想 ...
- 算法补天系列之——前缀树+贪心算法
介绍前缀树 经典的前缀树,字符都是在路上的,节点是为了边的存在而存在的,有路就可以复用. 那么前缀树对应的数据结构是什么样的呢? 对于节点构建结构,设置一个int pass(表示路径途径这个节点的次数 ...
最新文章
- wordpress必装的插件 wp最常用的十个插件
- 这年头连人用脑机接口信号都能无线传输了,瘫痪者可在家轻松上网看视频
- rest开发_REST 101开发人员专用
- Axis2 WebService(配置、发布、调用)
- Python手写神经网络实现3层感知机
- MYSQL数据库实验三多表查询_数据库之 MySQL --- 数据处理 之多表查询 (三)
- 小程序 switch 自定义_微信小程序自定义组件问题一:获取组件DOM元素
- NoSQL架构的几幅图
- 卫星通信 | 使用虹科SAF手持式频谱分析仪进行TDD信号分析
- 《通信原理》awgn信道仿真
- html超链接本地链接,为何本地连接变成本地连接2连接
- iPhone突然掉电快是什么情况,该如何解决?
- B站笔试真题之[编程题]扭蛋机
- JAVA默认永久代大小_jvm——metaspace代替永久代
- Java-Object转JSONObject
- char 与 unsign char的转换
- 想要支持扩展的手机浏览器?狐猴浏览器你绝对不能错过
- 施乐700彩机服务器维修,佳铭办公设备:施乐彩机维修代码
- shell基础之04
- 构建数字经济新生态,和数区块链结合隐私计算可发挥作用
热门文章
- 最新免费版 Office 全家桶Copilot,Gamma+MindShow 两大ChatGPT AI创意工具GPT-4神器助力高效智能制作 PPT,一键生成,与AI智能对话修改PPT(免安装)
- 从“防护型”到“操作型”——现代安全发展之未来
- 【http】xss和csrf 攻击
- C语言如何加缓冲,C语言学习笔记之输出缓冲
- 安装gromacs报错记录
- 如何从内容的角度迅速对作品的影视价值进行判断
- root改名字,root重命名
- 定格动画影片 - 重订相片与影片的分野 --转载
- java基础08 双重循环打印图形
- 虚幻4渲染编程(材质进阶篇)【第一卷:影视剧各种衣料--上】