Java 载客船只的最低数量

Java 载客船只的最低数量,java,algorithm,Java,Algorithm,第i个人有重量人[i],每艘船可承载的最大重量限制为 每艘船同时最多可载2人,前提是这些人的重量之和不超过极限 返回承载每个给定人员的最小船数。(保证每个人都可以乘船。) 例1: 输入:人员=[1,2],限制=3 输出:1 说明:1艘船(1,2) 例2: 输入:人员=[3,2,2,1],限制=3 输出:3 说明:3艘船(1、2)、(2)和(3) 例3: 输入:人员=[3,5,3,4],限制=5 输出:4 说明:4艘船(3)、(3)、(4)、(5) 对于第二个示例,我得到了错误的输出 获得输出2而

第i个人有重量人[i],每艘船可承载的最大重量限制为

每艘船同时最多可载2人,前提是这些人的重量之和不超过极限

返回承载每个给定人员的最小船数。(保证每个人都可以乘船。)

例1:

输入:人员=[1,2],限制=3
输出:1
说明:1艘船(1,2)

例2:

输入:人员=[3,2,2,1],限制=3
输出:3
说明:3艘船(1、2)、(2)和(3)

例3:

输入:人员=[3,5,3,4],限制=5
输出:4
说明:4艘船(3)、(3)、(4)、(5)

对于第二个示例,我得到了错误的输出 获得输出2而不是输出3 我的代码怎么了 我希望代码是这样的

class Solution {
    public int numRescueBoats(int[] people, int limit) {
        int count = 0;
        int i;
        int j = people.length - 1;

        Arrays.sort(people);

        for (i = 0; i < j; i++) {
            if (people[i] + people[j] <= limit) {
                i++;
                j--;
            } else {
                j--;
            }

            count++; 
        }

        return count;
    }
}
类解决方案{
公共整数艘(整数[]人,整数限制){
整数计数=0;
int i;
int j=人。长度-1;
数组。排序(人);
对于(i=0;iif
中增加了
i
两次,在successful
if
中增加了一次。您应该删除
i++
for
语句中的


2) 您不需要检查最后一个人-将(i=0;i更改为(i=0;i将您的循环部分替换为以下内容:

for (i = 0; i < j; ) {
            if (people[i] + people[j] <= limit) {
                i++;
                j--; 

            } 
            else {

                 j--;
             }
             count++;
        }
(i=0;i{
如果(人物[i]+人物[j]我建议你编辑你的标题,因为标题非常笼统,完成了……请回答……对我来说,你的逻辑不正确,人物[i]+人物[j]另外,请阅读我们都希望遵循的Stackoverflow。您是该网站的新用户,虽然很容易认为您知道如何撰写帖子,因为您已经年复一年地阅读了这些帖子,但在发布问题时,仍然有一些政策供您遵循。您向真实的人寻求帮助,所以请通过r帮助他们帮助您E记住SO政策,并在提问时遵循这些政策。我们有这些政策,因为就SO提问不仅仅是“为了你”,而是为了所有希望找到这个问题答案的人。它如何在不检查单个权重的情况下工作,你能解释@Naveen Verma
类解决方案吗{public int numrescuebots(int[]people,int limit){int count=0;int i=0;int j=people.length-1;Arrays.sort(people);while(iIt)在对OP的输入进行排序后,当我在OP的输入上运行它时,它给出了错误的结果。请检查您的代码,或者将完整的代码作为答案发布,我将检查,@madsuff`class Solution{public int numrescuebots(int[]人,int限制){int count=0;int i=0;int j=people.length-1;array.sort(人);while(i)