力扣881. 救生艇(贪心,双指针)
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. 救生艇(贪心,双指针)相关推荐
- [力扣刷题总结](双指针篇)
文章目录 |||||||||||||||||||| 双指针 |||||||||||||||||| 905. 按奇偶排序数组 解法1:双指针+原地交换 解法2:两次遍历+保持相对位置 475. 供暖器 ...
- LeetCode 第 58 场力扣夜喵双周赛(动态规划、马拉车算法,前后缀处理)/ 第 253 场力扣周赛(贪心,LIS)
第 58 场力扣夜喵双周赛 两道600多 5193. 删除字符使字符串变好 题目描述 一个字符串如果没有 三个连续 相同字符,那么它就是一个 好字符串 . 给你一个字符串 s ,请你从 s 删除 最少 ...
- 力扣刷题篇——双指针
目录 2000 题目描述
- 力扣记录:贪心算法3较难(1)区间问题——55 跳跃游戏,45 跳跃游戏II,452 用最少数量的箭引爆气球,435 无重叠区间,763 划分字母区间,56 合并区间
本次题目 55 跳跃游戏 45 跳跃游戏II 452 用最少数量的箭引爆气球 435 无重叠区间 763 划分字母区间 56 合并区间 55 跳跃游戏 局部最优:不管每次跳多少步,取最大跳跃步数,若覆 ...
- 力扣刷题记录--哈希表相关题目
当遇到需要快速判断一个元素是否出现在集合里面的时候,可以考虑哈希法,牺牲一定的空间换取查找的时间. java常用的哈希表有HashMap.HashSet以及用数组去模拟哈希,这几种方法各有优劣. 数组 ...
- LeetCode 881. 救生艇(贪心,双指针)
1. 题目 第 i 个人的体重为 people[i],每艘船可以承载的最大重量为 limit. 每艘船最多可同时载两人,但条件是这些人的重量之和最多为 limit. 返回载到每一个人所需的最小船数.( ...
- 力扣贪心算法专题(一)455.分发饼干 376. 摆动序列 53. 最大子序和 122.买卖股票的最佳时机II 1005.K次取反后最大化的数组和 思路及C++实现 贪心算法 动态规划
文章目录 贪心算法 455.分发饼干 思路 步骤 代码 376. 摆动序列 贪心算法 思路 分析 代码 动态规划 思路 步骤 代码 53. 最大子序和 暴力解法 双层for循环 贪心算法 思路 分析 ...
- 通俗易懂:贪心算法(二):区间问题 (力扣435无重叠区间)
看完本文,可以顺便解决leetcode以下题目: 435.无重叠区间(中等) 一.通俗易懂的 贪心算法 |思想 (重复一次~~~) 贪心算法就是采用贪心的策略,保证每一次的操作都是局部最优的,从而使得 ...
- 通俗易懂:贪心算法(一):分配问题 (力扣455分发饼干 和135分发糖果)
看完本文,可以顺便解决leetcode以下两个题目: 455.分发饼干(简单) 135.分发糖果(困难) 一.通俗易懂的 贪心算法 |思想 贪心算法就是采用贪心的策略,保证每一次的操作都是局部最优的, ...
最新文章
- SpringBoot RabbitMQ 延迟队列代码实现
- python 命令行参数—argparse模块的使用
- UVA 10600 ACM Contest and Blackout (次小生成树)
- Chromium OS 开源项目
- 带你全面了解真正的CleanMyMac,CleanMyMac使用说明
- 拉格朗日乘子法几何意义
- Docker 日常指令
- MISRA C指导指南解读系列1(MISRA C是什么)
- 所有网站都是用虚拟服务器吗,哪类网站不适合使用虚拟主机?
- 22nm 与 28nm 工艺的比较
- 超声波加湿器原理与检修
- 腾讯 TAPD DevOps 开放生态最佳实践
- java170道面试题汇总+详细解析
- AdGuard常规设置的介绍
- 量子计算机1003无标题,量子计算机研究
- Maven - 国内Maven仓库之阿里云Aliyun仓库地址及设置
- 功能室计算机室教学计划,计算机室教学计划
- 计算机操作测试题及答案,计算机操作系统期末考试题及答案-
- ssm+java+vue基于微信小程序的新生自助报到系统#毕业设计
- 09高温假旅行——青烟蓬长大
热门文章
- python簇状柱形图_python学习之路--可视化利器matplotlib(上)
- Linux网络不通Tcpdump抓包提示:ICMP host *** unreachable - admin prohibited
- 准备4个月过华为测试岗,拿个23k应该不多吧
- 苹果手机屏幕录制在哪_手机屏幕录制工具
- 一大波金融Library来袭之scipy篇(12/10)
- 安卓pubg服务器维修中,pubg服务器维护中
- PS设计精讲精练读书笔记
- 82567LM-3 网卡驱动
- 工业防火墙架构与技术【第二节:硬件架构②】
- 如何恢复回收站被清空的文件