题解 | #牛群优势最大化#

牛群优势最大化

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);
    }
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务