题解 | #最高售价的两只牛#
最高售价的两只牛
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)