博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode 881.救生艇(C++)
阅读量:5051 次
发布时间:2019-06-12

本文共 1053 字,大约阅读时间需要 3 分钟。

第 i 个人的体重为 people[i],每艘船可以承载的最大重量为 limit

每艘船最多可同时载两人,但条件是这些人的重量之和最多为 limit

返回载到每一个人所需的最小船数。(保证每个人都能被船载)。

 

示例 1:

输入:people = [1,2], limit = 3输出:1解释:1 艘船载 (1, 2)

示例 2:

输入:people = [3,2,2,1], limit = 3输出:3解释:3 艘船分别载 (1, 2), (2) 和 (3)

示例 3:

输入:people = [3,5,3,4], limit = 5输出:4解释:4 艘船分别载 (3), (3), (4), (5)

提示:

  • 1 <= people.length <= 50000
  • 1 <= people[i] <= limit <= 30000

思路:如果最重的人和最轻的人搭船,满足要求就一起,不满足,最重的人一个人一艘船,最轻的人再和次重的人一起搭船,流程和上面一样。

#include 
#include
#include
using namespace std;int numRescueBoats(vector
& people, int limit) { sort(people.begin(), people.end()); int i = 0, j = people.size() - 1, count = 0; while (i <= j) { count++; if (people[i] + people[j] <= limit) ++i; --j; } return count;}int main(){ vector
people = { 3, 2, 2, 1 }; int limit = 3; cout << numRescueBoats(people, limit); system("PAUSE"); return 0;}

 

转载于:https://www.cnblogs.com/Mayfly-nymph/p/10543444.html

你可能感兴趣的文章
3.RxJava详解
查看>>
【小波变换】STL版 一维离散小波变换(DWT)库,完全按matlab的wavelet toolbox 的API实现的...
查看>>
作业六:小学生四则运算之NABCD模型与产品Backlog。
查看>>
SQL 十位随机数(大小写字母+数据)
查看>>
[BZOJ]1116: [POI2008]CLO
查看>>
c#泛型action<T>委托
查看>>
__int128的实现
查看>>
R 读取clipboard内容 (MAC)
查看>>
Problem - 1118B - Codeforces(Tanya and Candies)
查看>>
jdk1.8 api 下载
查看>>
svn 图标不显示
查看>>
getElement的几中属性介绍
查看>>
iOS 使用Quartz 2D画虚线 【转】
查看>>
平面最接近点对
查看>>
HTML列表,表格与媒体元素
查看>>
PHP、Java、Python、C、C++ 这几种编程语言都各有什么特点或优点?
查看>>
IOS——OC——浅谈OC中的setter 和getter方法
查看>>
羊车门问题
查看>>
解决tableViewCell分割线不到左边界的问题
查看>>
dict 常用方法
查看>>