881救生艇

2024-06-10 15:44
文章标签 881 救生艇

本文主要是介绍881救生艇,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

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

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

分析:

贪心策略:先将people数组从小到大排序,考虑第一个人,如果他和最后一个人不能乘坐同一条船,那么最后一个人只能单独分配一条船。再考虑倒数第二个人,如果他能够和第一个人乘坐同一条船,那么给这两人分配同一条船,并且再考虑第二个人和倒数第三个人。到此,已经明确了,利用双指针即可解决。

class Solution {public int numRescueBoats(int[] people, int limit) {Arrays.sort(people);int cnt = 0;int l = 0,r = people.length-1;while(l<=r){if(people[l]+people[r]>limit){cnt++;r--;}else{l++;r--;cnt++;}}return cnt;}
}

这篇关于881救生艇的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1048585

相关文章

leetcode解题思路分析(一百零三)881 - 887 题

救生艇 第 i 个人的体重为 people[i],每艘船可以承载的最大重量为 limit。每艘船最多可同时载两人,但条件是这些人的重量之和最多为 limit。返回载到每一个人所需的最小船数。(保证每个人都能被船载)。 贪心算法:双指针滑动,如果最轻+最重可以坐得下,则一起走,否则把最重的人先驮走 class Solution {public:int numRescueBoats(vector

Day 18:881. 救生艇

Leetcode 881. 救生艇 给定数组 people 。people[i]表示第 i 个人的体重 ,船的数量不限,每艘船可以承载的最大重量为 limit。 每艘船最多可同时载两人,但条件是这些人的重量之和最多为 limit。 返回 承载所有人所需的最小船数 。 这里有一个条件,每艘船最多同时载两人,就变简单了。我考虑了载一个最重和最轻的人,然后还可以加一个稍微轻点的的人,这里就

​LeetCode解法汇总881. 救生艇

目录链接: 力扣编程题-解法汇总_分享+记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接:. - 力扣(LeetCode) 描述: 给定数组 people 。people[i]表示第 i 个人的体重 ,船的数量不限,每艘船可以承载的最大重量为 limit。 每艘船最多可同时

Java数据结构与算法(leetcode热题881. 救生艇)

前言 救生艇属于贪心算法,解题之前条件一定要归纳好。题目中存在3个要求: 1.一艘船最多坐2人 2.船数要求最小 3.每艘船重量小于limit 意味着体重较轻的两人可以同乘一艘救生艇。 . - 力扣(LeetCode) 实现原理 1.重量大的有轻的可以配对,则可以配对同乘。 2.重量大的没有轻的可以配对,则单独乘。 3.涉及到轻重配对,最佳还是优先给予排序好的数据进行配对。

LeetCode 0881.救生艇:排序+双指针(大人掌船,能捎就捎)

【LetMeFly】881.救生艇:排序+双指针(大人掌船,能捎就捎) 力扣题目链接:https://leetcode.cn/problems/boats-to-save-people/ 给定数组 people 。people[i]表示第 i 个人的体重 ,船的数量不限,每艘船可以承载的最大重量为 limit。 每艘船最多可同时载两人,但条件是这些人的重量之和最多为 limit。 返回 承

881. 救生艇 Medium

给定数组 people 。people[i]表示第 i 个人的体重 ,船的数量不限,每艘船可以承载的最大重量为 limit。 每艘船最多可同时载两人,但条件是这些人的重量之和最多为 limit。 返回 承载所有人所需的最小船数 。 示例 1: 输入:people = [1,2], limit = 3输出:1解释:1 艘船载 (1, 2) 示例 2: 输入:people = [3,

881. 救生艇

题目 给定数组 people。people[i] 表示第 i 个人的体重,船的数量不限,每艘船可以承载的最大重量为 limit。 每艘船最多可同时载两人,但条件是这些人的重量之和最多为 limit。 返回承载所有人所需的最小船数。 示例 1: 输入:people = [1,2], limit = 3输出:1解释:1 艘船载 (1, 2) 示例 2: 输入:people = [3,2,

救生艇筏 - 发现块状的世界在这个游戏针对iOS

救生艇筏 - 发现块状的世界在这个游戏针对iOS   的Minecraft   球迷现在必须很高兴,因为有一个不同的系列这个游戏​​市场的iOS上。救生艇筏真的是一个游戏,你需要通过简单的手工制作,勘探,施工生存,更以完全相同的宇宙就像我的世界。利用相同的图表,在这里你可以看到你自己的屏幕上这么多块状的细节,你需要你的编程技巧,现在,只要你喜欢游戏里做尽可能多的事情。很多人都喜欢我的世界,如果你看

61 贪心算法解救生艇问题

问题描述:第i个人的体重为peaple[i],每个船可以承载的最大重量为limit。每艘船最多可以同时载两人,但条件是这些人的重量之和最多为limit,返回载到每一个人多虚的最小船数,(保证每个人被船载)。 贪心算法求解:先将数组进行排序,然后使用双指针指向头和尾,如果头尾之和比limit小,则船数加一,双指针移动,如果大于limit,则船数量+1,尾指针前移,使用while循环退出这个过程,判

【LeetCode】881 救生艇 中等题

给定数组 people 。people[i]表示第 i 个人的体重 ,船的数量不限,每艘船可以承载的最大重量为 limit。 每艘船最多可同时载两人,但条件是这些人的重量之和最多为 limit。 返回 承载所有人所需的最小船数 。 示例 1: 输入:people = [1,2], limit = 3输出:1解释:1 艘船载 (1, 2) 示例 2: 输入:people = [