881. 救生艇
题目描述:

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

示例一:

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

示例二:

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

示例三:

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

提示:

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

分析:

是否真地看懂了题。
有没有看到“每艘船最多载两人这句话”,被各大怪题虐惨的我,首先的思路是:排序,动态规划,记忆化搜索?有没有可能,想办法找多点人,最好一大群人挤一艘船…
而,看清题目后——
——————————————
用贪心思想,只要让两人坐的船尽可能多就行,这样的话,最重的人要尽可能多地和最轻的人配对,很容易想到排序,双指针。

代码:

class Solution {public:int numRescueBoats(vector<int> &people, int limit) {int jie = 0;sort(people.begin(), people.end());int light = 0, heavy = people.size() - 1;while (light <= heavy) {if (people[light] + people[heavy] > limit) {--heavy;} else {++light;--heavy;}++jie;}return jie;}
};

力扣881. 救生艇(贪心,双指针)相关推荐

  1. [力扣刷题总结](双指针篇)

    文章目录 |||||||||||||||||||| 双指针 |||||||||||||||||| 905. 按奇偶排序数组 解法1:双指针+原地交换 解法2:两次遍历+保持相对位置 475. 供暖器 ...

  2. LeetCode 第 58 场力扣夜喵双周赛(动态规划、马拉车算法,前后缀处理)/ 第 253 场力扣周赛(贪心,LIS)

    第 58 场力扣夜喵双周赛 两道600多 5193. 删除字符使字符串变好 题目描述 一个字符串如果没有 三个连续 相同字符,那么它就是一个 好字符串 . 给你一个字符串 s ,请你从 s 删除 最少 ...

  3. 力扣刷题篇——双指针

    ​​​​​​​ 目录 2000 题目描述

  4. 力扣记录:贪心算法3较难(1)区间问题——55 跳跃游戏,45 跳跃游戏II,452 用最少数量的箭引爆气球,435 无重叠区间,763 划分字母区间,56 合并区间

    本次题目 55 跳跃游戏 45 跳跃游戏II 452 用最少数量的箭引爆气球 435 无重叠区间 763 划分字母区间 56 合并区间 55 跳跃游戏 局部最优:不管每次跳多少步,取最大跳跃步数,若覆 ...

  5. 力扣刷题记录--哈希表相关题目

    当遇到需要快速判断一个元素是否出现在集合里面的时候,可以考虑哈希法,牺牲一定的空间换取查找的时间. java常用的哈希表有HashMap.HashSet以及用数组去模拟哈希,这几种方法各有优劣. 数组 ...

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

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

  7. 力扣贪心算法专题(一)455.分发饼干 376. 摆动序列 53. 最大子序和 122.买卖股票的最佳时机II 1005.K次取反后最大化的数组和 思路及C++实现 贪心算法 动态规划

    文章目录 贪心算法 455.分发饼干 思路 步骤 代码 376. 摆动序列 贪心算法 思路 分析 代码 动态规划 思路 步骤 代码 53. 最大子序和 暴力解法 双层for循环 贪心算法 思路 分析 ...

  8. 通俗易懂:贪心算法(二):区间问题 (力扣435无重叠区间)

    看完本文,可以顺便解决leetcode以下题目: 435.无重叠区间(中等) 一.通俗易懂的 贪心算法 |思想 (重复一次~~~) 贪心算法就是采用贪心的策略,保证每一次的操作都是局部最优的,从而使得 ...

  9. 通俗易懂:贪心算法(一):分配问题 (力扣455分发饼干 和135分发糖果)

    看完本文,可以顺便解决leetcode以下两个题目: 455.分发饼干(简单) 135.分发糖果(困难) 一.通俗易懂的 贪心算法 |思想 贪心算法就是采用贪心的策略,保证每一次的操作都是局部最优的, ...

最新文章

  1. SpringBoot RabbitMQ 延迟队列代码实现
  2. python 命令行参数—argparse模块的使用
  3. UVA 10600 ACM Contest and Blackout (次小生成树)
  4. Chromium OS 开源项目
  5. 带你全面了解真正的CleanMyMac,CleanMyMac使用说明
  6. 拉格朗日乘子法几何意义
  7. Docker 日常指令
  8. MISRA C指导指南解读系列1(MISRA C是什么)
  9. 所有网站都是用虚拟服务器吗,哪类网站不适合使用虚拟主机?
  10. 22nm 与 28nm 工艺的比较
  11. 超声波加湿器原理与检修
  12. 腾讯 TAPD DevOps 开放生态最佳实践
  13. java170道面试题汇总+详细解析
  14. AdGuard常规设置的介绍
  15. 量子计算机1003无标题,量子计算机研究
  16. Maven - 国内Maven仓库之阿里云Aliyun仓库地址及设置
  17. 功能室计算机室教学计划,计算机室教学计划
  18. 计算机操作测试题及答案,计算机操作系统期末考试题及答案-
  19. ssm+java+vue基于微信小程序的新生自助报到系统#毕业设计
  20. 09高温假旅行——青烟蓬长大

热门文章

  1. python簇状柱形图_python学习之路--可视化利器matplotlib(上)
  2. Linux网络不通Tcpdump抓包提示:ICMP host *** unreachable - admin prohibited
  3. 准备4个月过华为测试岗,拿个23k应该不多吧
  4. 苹果手机屏幕录制在哪_手机屏幕录制工具
  5. 一大波金融Library来袭之scipy篇(12/10)
  6. 安卓pubg服务器维修中,pubg服务器维护中
  7. PS设计精讲精练读书笔记
  8. 82567LM-3 网卡驱动
  9. 工业防火墙架构与技术【第二节:硬件架构②】
  10. 如何恢复回收站被清空的文件