力扣每日一题 6/10

简介: 力扣每日一题 6/10

881.救生艇[中等]

题目:

给定数组 people 。people[i]表示第 i 个人的体重 ,船的数量不限,每艘船可以承载的最大重量为 limit。

每艘船最多可同时载两人,但条件是这些人的重量之和最多为 limit。

返回 承载所有人所需的最小船数 。

示例 1:

输入:people = [1,2], limit = 3

输出:1

解释:1 艘船载 (1, 2)

示例 2:

输入:people = [3,2,2,1], limit = 3

输出:3

解释:3 艘船分别载 (1, 2), (2) 和 (3)

示例 3:

输入:people = [3,5,3,4], limit = 5

输出:4

解释:4 艘船分别载 (3), (3), (4), (5)

提示:

  • 1 <= people.length <= 5 * 10**4
  • 1 <= people[i] <= limit <= 3 * 10**4

题目分析:

       一艘船最多上两个人,要使船只最少那就只能让每只船载人尽可能多,那么最多就是两个人,这里对people数组进行排序(假设从小到大排),然后定义双指针分别指头和尾。判断头+尾是否大于limit:

  • 大于的话则说明尾指针指向的最大值只能单独乘船,此时应单独分配一艘船给体重最重的人。从 people中去掉体重最重的人后,我们缩小了问题的规模,变成求解剩余 n−1 个人所需的最小船数,将其加一即为原问题的答案,此时尾指针向前走,船只加一;
  • 否则则说明 头 可以和 尾  一起乘船,那么头也能与其余任何人同乘一艘船,为了尽可能地利用船的承载重量,选择与体重最重的人同乘一艘船是最优的。从 people 中去掉体重最轻和体重最重的人后,就缩小了问题的规模,变成求解剩余 n−2 个人所需的最小船数,将其加一即为原问题的答案。此时头尾都往中间走一步,船只加1。以此类推,遍历一遍过去即可出答案。

代码实现:

class Solution:
    def numRescueBoats(self, people: List[int], limit: int) -> int:
        people.sort()
        n=len(people)
        if n==1: return 1
        res=0
        st,ed=0,n-1
        while st<=ed:
            if people[st]+people[ed]<=limit:
                res+=1
                st+=1
                ed-=1
            else:
                res+=1
                ed-=1
        return res

总结:

    代码的逻辑是基于贪心算法,每次尽可能多地安排乘客乘坐救生艇达到最少的船只数,最后返回res即为所需的最少船只数。具体步骤如下:

  1. 首先对乘客的重量列表进行排序,这样可以从小到大依次选择乘客。
  2. 使用双指针st和ed分别指向排序后的乘客列表的第一个和最后一个元素。
  3. 如果st指向的乘客和ed指向的乘客的重量之和不超过limit,则表示可以安排这两个乘客乘坐一艘救生艇,此时res加1,同时移动st和ed指针继续判断下一组乘客。
  4. 如果st指向的乘客和ed指向的乘客的重量之和超过limit,则只能让ed指向的乘客单独乘坐一艘救生艇,此时res加1,移动ed指针继续判断。
目录
相关文章
|
7月前
|
人工智能 自然语言处理 运维
大型企业如何建设智能客服系统(2026年2月新版)
本文剖析大型企业智能客服建设“三步走”路径:全渠道融合、知识资产化、人机协同。重点介绍阿里云瓴羊Quick Service如何依托通义千问大模型,构建超级知识库、实现拟人化任务执行、赋能智能坐席、驱动数据洞察,推动客服从成本中心跃升为价值引擎。(239字)
|
2月前
|
数据采集 人工智能 缓存
1688 图搜 API 实战|从一张竞品图片,实现全自动溯源货源 + 跨平台快速上货
本方案介绍基于1688图搜API的自动化选品上货系统,支持图片上传→智能识图→货源匹配→数据采集→多平台批量铺货全流程。涵盖官方与第三方接口对比、风控策略、版权规避及SaaS/单机两种部署模式,助力无货源商家降本增效。
361 0
|
8月前
|
云安全 安全
免费+限量+领云小宝周边!「阿里云2026云上安全健康体检」火热进行中!
诚邀您进行年度自检,发现潜在风险,守护云上业务连续稳健运行
3554 4
|
2月前
|
存储 关系型数据库 API
|
5月前
|
消息中间件 人工智能 运维
秒触达、零资损:亲宝宝基于 RocketMQ 支撑千万家庭实时互动与成长记录
通过全面采用阿里云 RocketMQ 5.x Serverless,亲宝宝显著降低使用成本,为亿级用户的流畅体验提供了坚实保障。
294 44
|
5月前
|
人工智能 数据可视化 API
零基础零门槛!OpenClaw 阿里云无影云电脑一键部署、iMessage对接与千问Qwen3.6-Plus配置教程
2026年,OpenClaw(原Clawdbot)作为轻量化、高扩展的AI智能体框架,凭借极简部署、多平台兼容与强大的工具调用能力,成为个人与团队搭建专属AI助理的首选方案。对于零基础用户,**阿里云无影云电脑**提供了官方认证的OpenClaw专属镜像,预装Node.js 22、Git、Homebrew等全部运行依赖,无需复杂环境配置,即可实现“分钟级部署、7×24小时稳定运行”。同时,通过官方imessage-connector插件可无缝对接苹果iMessage平台,搭配**阿里云千问Qwen3.6-Plus**大模型的高性能API,可实现长文本理解、复杂推理、代码生成、多轮对话等核心能力
618 6
|
10月前
|
SQL 关系型数据库 MySQL
释放数据潜能,加速业务创新 —— Dataphin 5.4 新增删改API功能
Dataphin 5.4推出数据增删改API功能,支持通过配置SQL快速生成安全、可管理的CRUD接口,覆盖AI编程、数据集成、低代码等场景,降低开发成本,提升数据治理与安全性,助力企业高效释放数据价值。
583 0
|
6月前
|
JSON API 开发者
如何通过API获取京东商品的券后价格详情
本文介绍如何调用京东API获取商品券后价,涵盖SKU/优惠券ID概念、OAuth认证、请求构造、签名生成及JSON响应解析,并附Python示例代码。强调需参考官方文档、申请权限、注意限频与安全。
|
8月前
|
数据采集 自然语言处理 算法
重塑虚实边界:智元机器人发布首个大语言模型驱动的开源仿真平台Genie Sim 3.0
智元机器人发布全球首个大语言模型驱动的开源仿真平台Genie Sim 3.0,基于NVIDIA Isaac Sim,实现高保真数字孪生环境,支持自然语言生成万级场景,分钟级构建与泛化。平台开源上万小时真实机器人作业数据集,覆盖200+任务,构建10万+场景评估体系,推动具身智能从研发到落地的全链路创新,助力开发者零硬件部署、高效训练与评测。
911 4

热门文章

最新文章