思路:sort + 双指针;

疑问:就是问什么可以直接选择最小的放入船里面,而不是找到最大容量的情况;因为,船的个人只有2个人,最大重量已经拿出来了,就算能找到一个最合适的重量,那么其他次大重量也是无法达到最优;如果是没有人员限制的话,就是一个背包问题了

int numRescueBoats(vector<int>& people, int limit) {sort(people.begin(), people.end());int left = 0;int right = people.size() - 1;int ans = 0;while (right >= 0 && people[right] == limit) {ans += 1;right -= 1;}while(left < right) {int sum = people[left] + people[right];if (sum <= limit) {ans += 1;left += 1, right -= 1;} else {ans += 1;right -= 1;}}if (left == right) {ans += 1;}return ans;
}

上述代码可进行优化,优化后

int numRescueBoats(vector<int>& people, int limit) {sort(people.begin(), people.end());int left = 0;int right = people.size() - 1;int ans = 0;while(left <= right) {int sum = people[left] + people[right];/合并left == right情况if (sum <= limit) {ans += 1;left += 1, right -= 1;//合并people[right]==limit情况} else {ans += 1;right -= 1;}}return ans;
}

leetcode-881 救生艇相关推荐

  1. Leetcode 881:救生艇问题

    Leetcode 881: 救生艇问题 问题描述: 现在有NNN位乘客被困在一艘即将坠海的遇难船上,其中第iii个乘客的体重记为people[i]. 每艘救生艇能够承载的最大体重为limit. 注意: ...

  2. LeetCode 881. 救生艇(贪心,双指针)

    1. 题目 第 i 个人的体重为 people[i],每艘船可以承载的最大重量为 limit. 每艘船最多可同时载两人,但条件是这些人的重量之和最多为 limit. 返回载到每一个人所需的最小船数.( ...

  3. LeetCode 881. 救生艇

    Description 第 i 个人的体重为 people[i],每艘船可以承载的最大重量为 limit. 每艘船最多可同时载两人,但条件是这些人的重量之和最多为 limit. 返回载到每一个人所需的 ...

  4. leetcode 881 救生艇 (python3- 贪心算法)

    刷题,遇见救生艇问题,题目如下: 第 i 个人的体重为 people[i],每艘船可以承载的最大重量为 limit. 每艘船最多可同时载两人,但条件是这些人的重量之和最多为 limit. 返回载到每一 ...

  5. LeetCode 881.救生艇

    https://leetcode.cn/problems/boats-to-save-people 给定数组 people .people[i]表示第 i 个人的体重 ,船的数量不限,每艘船可以承载的 ...

  6. LeetCode 881 救生艇

    题目描述 解题方法 每次都选择最轻和最重的两个,如果超过,那么最重的单独坐船(船最多载2人) class Solution:def numRescueBoats(self, people: List[ ...

  7. leetcode每日一题系列——881. 救生艇

    881. 救生艇 难度中等166收藏分享切换为英文接收动态反馈 第 i 个人的体重为 people[i],每艘船可以承载的最大重量为 limit. 每艘船最多可同时载两人,但条件是这些人的重量之和最多 ...

  8. 881. 救生艇-快速排序加贪心算法

    881. 救生艇 给定数组 people .people[i]表示第 i 个人的体重 ,船的数量不限,每艘船可以承载的最大重量为 limit. 每艘船最多可同时载两人,但条件是这些人的重量之和最多为 ...

  9. 力扣881. 救生艇(贪心,双指针)

    881. 救生艇 题目描述: 第 i 个人的体重为 people[i],每艘船可以承载的最大重量为 limit. 每艘船最多可同时载两人,但条件是这些人的重量之和最多为 limit. 返回载到每一个人 ...

  10. [LeetCode javaScript] 881. 救生艇

    第 i 个人的体重为 people[i],每艘船可以承载的最大重量为 limit. 每艘船最多可同时载两人,但条件是这些人的重量之和最多为 limit. 返回载到每一个人所需的最小船数.(保证每个人都 ...

最新文章

  1. 【CSS进阶】box-shadow 与 filter:drop-shadow 详解及奇技淫巧
  2. Codeforces 1176F
  3. jax-ws和jax-rs_使用JAX-RS和Jetty创建Web服务和Rest Server
  4. 【qduoj - 142】 多重背包(0-1背包的另类处理,dp)
  5. TypeError: 'numpy.int64' object is not iterable ,'int' object is not iterable
  6. android手机可以设置屏幕锁定,安卓手机屏幕锁设置方法(九个点图案)
  7. mysql 视图 速度慢_mysql 视图查询速度慢
  8. java简单巡回置换算法程序代码_巡回置换算法(巡回置换算法实现流程)
  9. centos7---mysql5.7主从复制读写分离
  10. vSphere 5.5 使用Web Client打开控制台窗口显示连接超时
  11. c51语言自定义头文件,C51语言头文件包括的内容有
  12. 【.NET6+WPF】WPF使用prism框架+Unity IOC容器实现MVVM双向绑定和依赖注入
  13. 用MFC构建HEVC码流播放器
  14. RuoYi-Vue前端分页
  15. 抗议浪潮不断,峰会笑声阵阵
  16. 如何创建苹果开发者个人号账号P8证书
  17. 有生之年转ta系列 2.6 伽马校正
  18. Apache POI读合并单元格
  19. 离DApp的爆发还差什么?|链捕手
  20. 爱的五种语言:创造完美的两性沟通

热门文章

  1. 清北学堂2019.8.7
  2. 场效应管 - MOSFET
  3. 【沉痛悼念】首届国医大师唐由之逝世 | 曾为毛主席治疗白内障
  4. 我帮粉丝赚了10w+
  5. 玩转树莓派 —智能家居(语音控制电器开关 及语音模块的二次开发)
  6. 送别了我的师父,我觉得我的青春结束了
  7. 简单爬虫——京东网图书爬取
  8. 计算机管理 合并分区,如何分区,删除和合并计算机02
  9. 平生不会相思,才会相思,便害相思
  10. [pillow]透明图片和不透明图片叠加合成--添加透明度