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;   
    }
}
相关推荐
南川琼语15 分钟前
算法——希尔排序
数据结构·算法·排序算法
xiongmaodaxia_z728 分钟前
python数据类型处理题,输出素数题
数据结构·算法
ゞ 正在缓冲99%…2 小时前
leetcode14.最长公共前缀
java·算法·leetcode
神经星星2 小时前
覆盖40+主流模型及数据集,上海交大团队发布一站式蛋白质工程设计平台VenusFactory,一键部署教程已上线
数据库·人工智能·算法
LuckyLay3 小时前
LeetCode算法题(Go语言实现)_49
算法·leetcode·golang
ElseWhereR3 小时前
二进制求和 - 简单
c++·算法·leetcode
天天扭码3 小时前
LeetCode 题解 | 1.两数之和(最优解)
前端·javascript·算法
亿佛3 小时前
(Matlab)自动驾驶仿真 设计驾驶场景、配置传感器并生成合成 数据
人工智能·算法·机器学习·自动驾驶·测试用例