请输入代码
给定两个大小相等的数组 A 和 B,A 相对于 B 的优点能够用知足 A[i] > B[i] 的索引 i 的数目来描述。数组
返回 A 的任意排列,使其相对于 B 的优点最大化。code
示例 1:索引
输入:A = [2,7,11,15], B = [1,10,4,11]
输出:[2,11,7,15]
示例 2:rem
输入:A = [12,24,8,32], B = [13,25,32,11]
输出:[24,32,8,12]get
假设最终输出的数组为C,这题的核心的思想就在于,任意非负整数i,C[i]的选定都和数组C中其余数的选定无关。
并且这题也不存在什么须要考虑的特殊状况,很是好写。io
代码:class
class Solution { public int[] advantageCount(int[] A, int[] B) { Arrays.sort(A); List<Integer> list = new ArrayList<>(); for(int i = 0 ; i < A.length ; i++){ list.add(A[i]); } int [] C = new int [A.length]; for(int i =0 ; i < C.length ; i++){ C[i] = Integer.MIN_VALUE; for(int j = 0; j < list.size() ; j++ ){ if(list.get(j) > B[i]){ C[i] = list.remove(j); break; } } } for(int i = 0 ; i < C.length; i++){ if(C[i] == Integer.MIN_VALUE){ C[i] = list.remove(0); } } return C; } }