leetcode每日一题·救生艇问题(Python)
leetcode每日一题·救生艇问题(Python)
问题描述
题目入口
题目思路
首先分析问题,一个船最多坐两人,因此我们可以把这个问题看作两两组合的问题,并且如果最重的那个人和最轻的人加起来大于limit的话,说明最重的那个人是要一个人坐船的,此外,如果最重的人和最轻的人正好同坐一条船,那么就可以将它俩分配到一条船上去。
因此在写代码时,首先将数组排序,分别指向首尾坐标,判断当前最轻+最重是否大于limit,大于的话,最重的人坐船,船数+1,尾坐标前移,如果小于,那么最轻和最重两人一起坐船,首坐标后移,尾坐标前移,船数+1。因为考虑到最后一次人数是一人还是两人的问题,如果一人,那么首坐标和尾坐标指向同一个人时,一个人坐船离开,亦或者剩余最后两个人都坐船离开,因此判断条件为首坐标>尾坐标,跳出循环。
代码如下:
class Solution:def numRescueBoats(self, people: List[int], limit: int) -> int:# 代表船的个数n = 0# 排序people.sort()# 指向最轻的人的下标head = 0# 指向最重的人的下标tail = len(people) - 1while head <= tail:if people[head] + people[tail] > limit:tail -= 1else:head += 1tail -= 1n += 1return n
leetcode每日一题·救生艇问题(Python)相关推荐
- leetcode每日一题·买卖股票问题(Python)
leetcode每日一题·买卖股票问题(Python) 买卖股票的最佳时机(股票最大利润) 题目链接 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的 ...
- leetcode每日刷题计划-简单篇day8
leetcode每日刷题计划-简单篇day8 今天是纠结要不要新买手机的一天QAQ想了想还是算了吧,等自己赚钱买,加油 Num 70 爬楼梯 Climbing Stairs class Solutio ...
- Leetcode每日一题:171.excel-sheet-column-number(Excel表列序号)
思路:就是168题的反命题,进制的方式完美解决: Leetcode每日一题:168.excel-sheet-column-title(Excel表名称) class Solution {public: ...
- 【LeetCode每日一题】1723. 完成所有工作的最短时间
[LeetCode每日一题]1723. 完成所有工作的最短时间 [1] 1723. 完成所有工作的最短时间 [2] 473. 火柴拼正方形 [1] 1723. 完成所有工作的最短时间 题目: 给你一个 ...
- leetcode每日一题--雀巢原理;抽屉算法;Quorum机制;分布式应用
leetcode每日一题 539. 最小时间差 示例 1: 输入:timePoints = ["23:59","00:00"] 输出:1 示例 2: 输入:ti ...
- LeetCode每日一题——1812. 判断国际象棋棋盘中一个格子的颜色
LeetCode每日一题系列 题目:1812. 判断国际象棋棋盘中一个格子的颜色 难度:简单 文章目录 LeetCode每日一题系列 题目 示例 思路 题解 题目 给你一个坐标 coordinates ...
- 【LeetCode每日一题】——109.有序链表转换二叉搜索树
文章目录 一[题目类别] 二[题目难度] 三[题目编号] 四[题目描述] 五[题目示例] 六[题目提示] 七[解题思路] 八[时间频度] 九[代码实现] 十[提交结果] 一[题目类别] 二叉树 二[题 ...
- LeetCode每日一题——904. 水果成篮
LeetCode每日一题系列 题目:904. 水果成篮 难度:普通 文章目录 LeetCode每日一题系列 题目 示例 思路 题解 题目 你正在探访一家农场,农场从左到右种植了一排果树.这些树用一个整 ...
- LeetCode每日一题打卡组队监督!刷题群!
近 2000 人已经加入共同刷题啦! 群友每天都会在群里给大家讲解算法题 每周日「负雪明烛」组织直播讲题 我相信来看我博客的大部分人都是通过LeetCode刷题过来的.最近发现LeetCode中文网站 ...
最新文章
- javascript 模块化编程----模块的写法
- 推荐 10 个实用型的热门开源项目,开发效率又能提升了!
- java中,剩下的这两个内部类不太好理解!
- python中升级pip报错_linux系统下pip升级报错的解决方法
- tsm如何备份oracle原理,技巧 | 使用TSM备份Oracle,怎么设置通道更好?
- SAP License:对虚拟利润中心的几点认识
- 第D题 把手放在键盘上时,稍不注意就会往右错一位。
- 用pcl读ply文件_一分钟详解PCL中点云配准技术
- android uri内部协议,Android 解析 Intent 协议并打开程序 – 热爱改变生活
- 最近一个快要结束的项目的BUG分析
- android利用AudioRecord实现录音功能(kotlin语言)
- GTK真不容易,资料少,学得人也少!
- 【commons-beanutils专题】003- PropertyUtils 专题
- 日语输入法下载(转)
- 相机标定+极线矫正+elas生成视差图
- 图像处理之边缘检测[微分算子、Canny算子和LOG算子]
- 【10.24】一个只属于程序员的节日
- Cobbler自动安装windows10
- 已知字符串STRING以‘$’为结束标志;统计其中小写字母的个数,结果送到COUNT单元,并把该字符串中的小写字母变成大写字母,其它字符保持不变。要求分别在屏幕上输出原字符串以及修改后的字符串。
- ASP.NET Core 和 EF Core系列教程——CRUD