题解 | #最高售价的两只牛#
最高售价的两只牛
https://www.nowcoder.com/practice/8e4a09d5f63d4298a8507decf5d12490
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param pricesA int整型一维数组
* @param pricesB int整型一维数组
* @param k int整型
* @return int整型二维数组
*/
public int[][] kPairsWithLargestSums (int[] pricesA, int[] pricesB, int k) {
int[][] ansList = new int[k][] ;
Arrays.sort(pricesA) ;
Arrays.sort(pricesB) ;
int[] p = new int[k] ;
for(int i = 0;i < k;i++){
int ma = -1;
int maP = 0 ;
for(int j = 0;j < p.length;j++){
if(p[j] >= pricesB.length){
continue ;
}
int sum = pricesA[pricesA.length-1-j] + pricesB[pricesB.length-1-p[j]] ;
if(ma == -1 || sum > ma){
ma = sum;
maP = j ;
}
}
ansList[i] = new int[]{pricesA[pricesA.length-1-maP],pricesB[pricesB.length-1-p[maP]]} ;
p[maP]++ ;
}
return ansList ;
// write code here
}
}
算法复杂度O(k*k)