//把最大的N个包放到小顶堆,然后剩下的包加到堆顶上去,直到所有的包都加进去,堆顶就是结果 private static int smallerPackage(int[] array, int num){ PriorityQueue<Integer> pq = new PriorityQueue<>(); for (int i = array.length-1; i >= array.length-num; i--) { pq.add(array[i]); } for (int i = array.length-num-1; i >=0; i--) { int smaller = pq.poll(); pq.add(array[i]+smaller); } System.out.println(pq); return pq.peek(); }
点赞 4

相关推荐

雪飒:我也遇见过,我反问他有考虑来华为od吗?
点赞 评论 收藏
分享
牛客网
牛客企业服务