leetcode 881.救生艇

思路:经典的贪心套路'

其实就是对于每个数组的元素进行从最小或者从最大的元素开始进行遍历,或者说我们首先对于数组进行倒序或者是升序进行排序之后,再在两端进行双指针的筛选。

题目中又说规定一个船里面只能够装两个人,所以我们在遍历的时候,尽最大的可能进行装载两个人,也就是说,我们每次都需要从两端进行筛选,如果说两端的人数的重量是可以承载的,这个时候每一个船也就是说可以装载了两个人,这样可以最大限度的减少船只的数量。所以我们就可以用这样的方法进行贪心即可。

复制代码
class Solution {
    public int numRescueBoats(int[] people, int limit) {
        int n=people.length;
        int l=0;
        int r=n-1;
        Arrays.sort(people);
        int cnt=0;
        while(l<r){
            if(people[l]+people[r]<=limit){
                cnt++;
                l++;
                r--;
            }
            else{
                cnt++;
                r--;
            }
        }
        if(l==r){
            if(people[l]<=limit)
            cnt++;
        }
     return cnt;   
    }
}
相关推荐
hetao17338379 小时前
2026-10-07 hetao1733837 的刷题记录
c++·算法
Nil2089 小时前
leetcode 279完全平方数
算法·leetcode·职场和发展
longlongzihan9 小时前
前缀积与后缀积 —— LeetCode 238. 除了自身以外数组的乘积
开发语言·c++·leetcode
All for pursuit.9 小时前
【动态规划-1】121.买卖股票的最佳时机
数据结构·c++·算法·leetcode·动态规划
名不经传的养虾人9 小时前
从0到1:企业级AI项目迭代日记 Vol.117|学会忘记,学会证明,学会设边界
大数据·人工智能·算法·企业ai·多agent协作
weixin_307779139 小时前
C++代码实现MATLAB中的cvpartition函数功能
开发语言·c++·算法·matlab
(Charon)10 小时前
【C++面试】线程同步机制:互斥锁、条件变量、原子操作与读写锁
开发语言·c++·算法·面试
七牛云行业应用10 小时前
刚刚!GPT-6.1 Sol Ultrafast 上线:速度、价格、API 接入全指南
算法
Omics Pro10 小时前
研究证实AI虚拟细胞可用于药物靶点发现
数据库·人工智能·算法·机器学习·自然语言处理
在所不辞兄10 小时前
常微分方程详解与应用
人工智能·神经网络·算法·机器学习