All Downloads are FREE. Search and download functionalities are using the official Maven repository.

g1001_1100.s1029_two_city_scheduling.Solution Maven / Gradle / Ivy

There is a newer version: 1.38
Show newest version
package g1001_1100.s1029_two_city_scheduling;

// #Medium #Array #Sorting #Greedy #2022_02_27_Time_1_ms_(97.54%)_Space_39.9_MB_(53.65%)

import java.util.Arrays;

/**
 * 1029 - Two City Scheduling\.
 *
 * Medium
 *
 * A company is planning to interview `2n` people. Given the array `costs` where costs[i] = [aCosti, bCosti], the cost of flying the ith person to city `a` is aCosti, and the cost of flying the ith person to city `b` is bCosti.
 *
 * Return _the minimum cost to fly every person to a city_ such that exactly `n` people arrive in each city.
 *
 * **Example 1:**
 *
 * **Input:** costs = \[\[10,20],[30,200],[400,50],[30,20]]
 *
 * **Output:** 110
 *
 * **Explanation:**
 *
 * The first person goes to city A for a cost of 10. 
 *
 * The second person goes to city A for a cost of 30. 
 *
 * The third person goes to city B for a cost of 50. 
 *
 * The fourth person goes to city B for a cost of 20. 
 *
 * The total minimum cost is 10 + 30 + 50 + 20 = 110 to have half the people interviewing in each city.
 *
 * **Example 2:**
 *
 * **Input:** costs = \[\[259,770],[448,54],[926,667],[184,139],[840,118],[577,469]]
 *
 * **Output:** 1859
 *
 * **Example 3:**
 *
 * **Input:** costs = \[\[515,563],[451,713],[537,709],[343,819],[855,779],[457,60],[650,359],[631,42]]
 *
 * **Output:** 3086
 *
 * **Constraints:**
 *
 * *   `2 * n == costs.length`
 * *   `2 <= costs.length <= 100`
 * *   `costs.length` is even.
 * *   1 <= aCosti, bCosti <= 1000
**/
public class Solution {
    public int twoCitySchedCost(int[][] costs) {
        Arrays.sort(costs, (a, b) -> (a[0] - a[1] - (b[0] - b[1])));
        int cost = 0;
        for (int i = 0; i < costs.length; i++) {
            if (i < costs.length / 2) {
                cost += costs[i][0];
            } else {
                cost += costs[i][1];
            }
        }
        return cost;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy