📜  找出容纳乘客所需的火车的最小容量

📅  最后修改于: 2021-10-27 06:25:39             🧑  作者: Mango

给定进出火车的乘客数量,任务是找到火车的最小容量,以在整个旅程中保留所有乘客。
例子:

方法:列车在特定车站的当前容量可以通过加上进车人数减去出车人数来计算。所需的最小容量将是所有站点当前容量的所有值中的最大值。
下面是上述方法的实现:

C++
// C++ implementation of the approach
#include 
using namespace std;
 
// Function to return the minimum capacity required
int minCapacity(int enter[], int exit[], int n)
{
 
    // To store the minimum capacity
    int minCap = 0;
 
    // To store the current capacity
    // of the train
    int currCap = 0;
 
    // For every station
    for (int i = 0; i < n; i++) {
 
        // Add the number of people entering the
        // train and subtract the number of people
        // exiting the train to get the
        // current capacity of the train
        currCap = currCap + enter[i] - exit[i];
 
        // Update the minimum capacity
        minCap = max(minCap, currCap);
    }
 
    return minCap;
}
 
// Driver code
int main()
{
    int enter[] = { 3, 5, 2, 0 };
    int exit[] = { 0, 2, 4, 4 };
    int n = sizeof(enter) / sizeof(enter[0]);
 
    cout << minCapacity(enter, exit, n);
 
    return 0;
}


Java
// Java implementation of the approach
import java.util.*;
 
class GFG
{
 
// Function to return the minimum capacity required
static int minCapacity(int enter[],
                       int exit[], int n)
{
 
    // To store the minimum capacity
    int minCap = 0;
 
    // To store the current capacity
    // of the train
    int currCap = 0;
 
    // For every station
    for (int i = 0; i < n; i++)
    {
 
        // Add the number of people entering the
        // train and subtract the number of people
        // exiting the train to get the
        // current capacity of the train
        currCap = currCap + enter[i] - exit[i];
 
        // Update the minimum capacity
        minCap = Math.max(minCap, currCap);
    }
    return minCap;
}
 
// Driver code
public static void main(String[] args)
{
    int enter[] = { 3, 5, 2, 0 };
    int exit[] = { 0, 2, 4, 4 };
    int n = enter.length;
 
    System.out.println(minCapacity(enter, exit, n));
}
}
 
// This code is contributed by Rajput-Ji


Python3
# Python3 implementation of the approach
 
# Function to return the
# minimum capacity required
def minCapacity(enter, exit, n):
     
    # To store the minimum capacity
    minCap = 0;
 
    # To store the current capacity
    # of the train
    currCap = 0;
 
    # For every station
    for i in range(n):
         
        # Add the number of people entering the
        # train and subtract the number of people
        # exiting the train to get the
        # current capacity of the train
        currCap = currCap + enter[i] - exit[i];
 
        # Update the minimum capacity
        minCap = max(minCap, currCap);
    return minCap;
 
# Driver code
if __name__ == '__main__':
    enter = [3, 5, 2, 0];
    exit = [0, 2, 4, 4];
    n = len(enter);
 
    print(minCapacity(enter, exit, n));
 
# This code is contributed by Princi Singh


C#
// C# implementation of the approach
using System;
 
class GFG
{
 
// Function to return the minimum
// capacity required
static int minCapacity(int []enter,
                       int []exit, int n)
{
 
    // To store the minimum capacity
    int minCap = 0;
 
    // To store the current capacity
    // of the train
    int currCap = 0;
 
    // For every station
    for (int i = 0; i < n; i++)
    {
 
        // Add the number of people entering the
        // train and subtract the number of people
        // exiting the train to get the
        // current capacity of the train
        currCap = currCap + enter[i] - exit[i];
 
        // Update the minimum capacity
        minCap = Math.Max(minCap, currCap);
    }
    return minCap;
}
 
// Driver code
public static void Main(String[] args)
{
    int []enter = { 3, 5, 2, 0 };
    int []exit = { 0, 2, 4, 4 };
    int n = enter.Length;
 
    Console.WriteLine(minCapacity(enter, exit, n));
}
}
 
// This code is contributed by PrinciRaj1992


Javascript


输出:

6

时间复杂度: O(n)

如果您希望与专家一起参加现场课程,请参阅DSA 现场工作专业课程学生竞争性编程现场课程