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

61 贪心算法解救生艇问题

问题描述:第i个人的体重为peaple[i],每个船可以承载的最大重量为limit。每艘船最多可以同时载两人,但条件是这些人的重量之和最多为limit,返回载到每一个人多虚的最小船数,(保证每个人被船载)。

贪心算法求解:先将数组进行排序,然后使用双指针指向头和尾,如果头尾之和比limit小,则船数加一,双指针移动,如果大于limit,则船数量+1,尾指针前移,使用while循环退出这个过程,判断标准为尾指针>头指针,最后需要判断尾指针是否等于头指针,因为最后一个人无论如何都需要一个船。

public int numberBoat(int []peaple)
{
int start=0;
int end=peaple.length;
int count=0;
Arrays.sort(peaple);
while(end>start)
{
if(peaple[end]+peaple[start]<=limit)
{
end--;
start++;
count++;
}else
{
end--;
count++;
}
}
if(end==start){count++;}
​​​​​​​return count;
}

http://www.lryc.cn/news/268715.html

相关文章:

  • C#高级 01.Net多线程
  • Java---泛型讲解
  • 【论文阅读笔记】SegVol: Universal and Interactive Volumetric Medical Image Segmentation
  • Unix/Linux操作系统介绍
  • 什么是https证书?
  • C++ DAY2作业
  • RabbitMQ核心概念记录
  • 算法时间空间复杂度计算—空间复杂度
  • 计算机专业校招常见面试题目总结
  • 网络编程『简易TCP网络程序』
  • java itext5 生成PDF并填充数据导出
  • 如何配置TLSv1.2版本的ssl
  • 在CentOS 7上使用普通用户`minio`安装和配置MinIO
  • Vue3-27-路由-路径参数的简单使用
  • w7数据库基础之mysql函数
  • 智能优化算法应用:基于人工蜂鸟算法3D无线传感器网络(WSN)覆盖优化 - 附代码
  • Docker的基础使用
  • Sass(Scss)、Less的区别与选择 + 基本使用
  • GPT Zero 是什么?
  • c++学习笔记-提高篇-案例2-员工分组(vector/multimap)
  • TrustZone之问答
  • vue3中新增的组合式API:ref、reactive、toRefs、computed、watch、provide/inject、$ref
  • Flask 密码重设系统
  • HarmonyOS4.0开发应用(四)【ArkUI状态管理】
  • JS常见正则表达式写法(附案例)
  • go语言,ent库与gorm库,插入一条null值的time数据
  • Java EasyExcel 导入代码
  • 2024,5G-A风起,中兴通讯破浪
  • SuperMap Hi-Fi 3D SDK for Unity矢量面贴地贴模型
  • 【DB2】Maxlocks和防止锁升级