|
3 | 3 | import java.util.PriorityQueue;
|
4 | 4 | import java.util.TreeMap;
|
5 | 5 |
|
6 |
| -/** |
7 |
| - * 1057. Campus Bikes |
8 |
| - * |
9 |
| - * On a campus represented as a 2D grid, there are N workers and M bikes, with N <= M. Each worker and bike is a 2D coordinate on this grid. |
10 |
| - * Our goal is to assign a bike to each worker. |
11 |
| - * Among the available bikes and workers, we choose the (worker, bike) pair with the shortest Manhattan distance between each other, |
12 |
| - * and assign the bike to that worker. (If there are multiple (worker, bike) pairs with the same shortest Manhattan distance, |
13 |
| - * we choose the pair with the smallest worker index; if there are multiple ways to do that, |
14 |
| - * we choose the pair with the smallest bike index). We repeat this process until there are no available workers. |
15 |
| - * |
16 |
| - * The Manhattan distance between two points p1 and p2 is Manhattan(p1, p2) = |p1.x - p2.x| + |p1.y - p2.y|. |
17 |
| - * Return a vector ans of length N, where ans[i] is the index (0-indexed) of the bike that the i-th worker is assigned to. |
18 |
| - * |
19 |
| - * Example 1: |
20 |
| - * Input: workers = [[0,0],[2,1]], bikes = [[1,2],[3,3]] |
21 |
| - * Output: [1,0] |
22 |
| - * Explanation: |
23 |
| - * Worker 1 grabs Bike 0 as they are closest (without ties), and Worker 0 is assigned Bike 1. So the output is [1, 0]. |
24 |
| - * |
25 |
| - * Example 2: |
26 |
| - * Input: workers = [[0,0],[1,1],[2,0]], bikes = [[1,0],[2,2],[2,1]] |
27 |
| - * Output: [0,2,1] |
28 |
| - * Explanation: |
29 |
| - * Worker 0 grabs Bike 0 at first. Worker 1 and Worker 2 share the same distance to Bike 2, |
30 |
| - * thus Worker 1 is assigned to Bike 2, and Worker 2 will take Bike 1. So the output is [0,2,1]. |
31 |
| - * |
32 |
| - * Note: |
33 |
| - * 0 <= workers[i][j], bikes[i][j] < 1000 |
34 |
| - * All worker and bike locations are distinct. |
35 |
| - * 1 <= workers.length <= bikes.length <= 1000 |
36 |
| - * */ |
37 | 6 | public class _1057 {
|
38 | 7 | public static class Solution1 {
|
39 | 8 | public int[] assignBikes(int[][] workers, int[][] bikes) {
|
|
0 commit comments