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)相关推荐

  1. leetcode每日一题·买卖股票问题(Python)

    leetcode每日一题·买卖股票问题(Python) 买卖股票的最佳时机(股票最大利润) 题目链接 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的 ...

  2. leetcode每日刷题计划-简单篇day8

    leetcode每日刷题计划-简单篇day8 今天是纠结要不要新买手机的一天QAQ想了想还是算了吧,等自己赚钱买,加油 Num 70 爬楼梯 Climbing Stairs class Solutio ...

  3. Leetcode每日一题:171.excel-sheet-column-number(Excel表列序号)

    思路:就是168题的反命题,进制的方式完美解决: Leetcode每日一题:168.excel-sheet-column-title(Excel表名称) class Solution {public: ...

  4. 【LeetCode每日一题】1723. 完成所有工作的最短时间

    [LeetCode每日一题]1723. 完成所有工作的最短时间 [1] 1723. 完成所有工作的最短时间 [2] 473. 火柴拼正方形 [1] 1723. 完成所有工作的最短时间 题目: 给你一个 ...

  5. leetcode每日一题--雀巢原理;抽屉算法;Quorum机制;分布式应用

    leetcode每日一题 539. 最小时间差 示例 1: 输入:timePoints = ["23:59","00:00"] 输出:1 示例 2: 输入:ti ...

  6. LeetCode每日一题——1812. 判断国际象棋棋盘中一个格子的颜色

    LeetCode每日一题系列 题目:1812. 判断国际象棋棋盘中一个格子的颜色 难度:简单 文章目录 LeetCode每日一题系列 题目 示例 思路 题解 题目 给你一个坐标 coordinates ...

  7. 【LeetCode每日一题】——109.有序链表转换二叉搜索树

    文章目录 一[题目类别] 二[题目难度] 三[题目编号] 四[题目描述] 五[题目示例] 六[题目提示] 七[解题思路] 八[时间频度] 九[代码实现] 十[提交结果] 一[题目类别] 二叉树 二[题 ...

  8. LeetCode每日一题——904. 水果成篮

    LeetCode每日一题系列 题目:904. 水果成篮 难度:普通 文章目录 LeetCode每日一题系列 题目 示例 思路 题解 题目 你正在探访一家农场,农场从左到右种植了一排果树.这些树用一个整 ...

  9. LeetCode每日一题打卡组队监督!刷题群!

    近 2000 人已经加入共同刷题啦! 群友每天都会在群里给大家讲解算法题 每周日「负雪明烛」组织直播讲题 我相信来看我博客的大部分人都是通过LeetCode刷题过来的.最近发现LeetCode中文网站 ...

最新文章

  1. javascript 模块化编程----模块的写法
  2. 推荐 10 个实用型的热门开源项目,开发效率又能提升了!
  3. java中,剩下的这两个内部类不太好理解!
  4. python中升级pip报错_linux系统下pip升级报错的解决方法
  5. tsm如何备份oracle原理,技巧 | 使用TSM备份Oracle,怎么设置通道更好?
  6. SAP License:对虚拟利润中心的几点认识
  7. 第D题 把手放在键盘上时,稍不注意就会往右错一位。
  8. 用pcl读ply文件_一分钟详解PCL中点云配准技术
  9. android uri内部协议,Android 解析 Intent 协议并打开程序 – 热爱改变生活
  10. 最近一个快要结束的项目的BUG分析
  11. android利用AudioRecord实现录音功能(kotlin语言)
  12. GTK真不容易,资料少,学得人也少!
  13. 【commons-beanutils专题】003- PropertyUtils 专题
  14. 日语输入法下载(转)
  15. 相机标定+极线矫正+elas生成视差图
  16. 图像处理之边缘检测[微分算子、Canny算子和LOG算子]
  17. 【10.24】一个只属于程序员的节日
  18. Cobbler自动安装windows10
  19. 已知字符串STRING以‘$’为结束标志;统计其中小写字母的个数,结果送到COUNT单元,并把该字符串中的小写字母变成大写字母,其它字符保持不变。要求分别在屏幕上输出原字符串以及修改后的字符串。
  20. ASP.NET Core 和 EF Core系列教程——CRUD

热门文章

  1. PTMs-ALBERT
  2. 详细讲解MOSFET管驱动电路(转)
  3. android指南针卡死,android指南针
  4. 故障诊断分类 matlab代码 轴承内圈、外圈、滚动体故障分类
  5. ffmpeg中tbr tbc tbn的含义解释
  6. python绘制三维地形_三维数字场地模型(上篇):Civil3D 地形的生成
  7. 用 SQL 分析不同用户群组留存率
  8. 难上加难?女性在技术领域可以这样做……
  9. 算法竞赛入门经典(刘汝佳)——代码笔记
  10. php+mysql获取7天、30天的统计数据,没有数值的补充0 By勤勤学长