题解 | #最高售价的两只牛#

最高售价的两只牛

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)

全部评论

相关推荐

点赞 评论 收藏
分享
听说改名字就能收到offer哈:Radis写错了兄弟
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务