题解 | #牛群优势最大化#
牛群优势最大化
https://www.nowcoder.com/practice/6d4d03acb01a407381f0312bd7ed054c
import java.util.*;
public class Solution {
public int[] advantageCount (int[] groupA, int[] groupB) {
// write code here
List<Integer> arr = new ArrayList<>();
int[] res = new int[groupA.length];
int index = 0;
for (int num : groupA) arr.add(num);
Collections.sort(arr);
for (int num : groupB) {
int i = search(arr, 0, arr.size() - 1, num);
res[index++] = arr.get(i);
arr.remove(i);
}
return res;
}
public int search(List<Integer> arr, int l, int r, int tar) {
if (l > r) return l >= arr.size() ? 0 : l;
int mid = (l + r) / 2;
if (arr.get(mid) > tar) r = mid - 1;
else l = mid + 1;
return search(arr, l, r, tar);
}
}

