請輸入代碼
給定兩個大小相等的數組 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; } }