提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
田忌赛马的升级版,nums1表示田忌的马,nums2表示齐王的马,nums2的下标表示出场顺序
前言
一、力扣870. 优势洗牌
class Solution {
public int[] advantageCount(int[] nums1, int[] nums2) {
PriorityQueue<int[]> pq = new PriorityQueue<>(
(int[] a1, int[] a2)->{
return a2[1] - a1[1];
}
);
for(int i = 0; i < nums2.length; i ++){
pq.offer(new int[]{i,nums2[i]});
}
Arrays.sort(nums1);
int[] res = new int[nums1.length];
int left = 0, right = nums1.length-1;
while(!pq.isEmpty()){
int[] cur = pq.poll();
int index = cur[0], val = cur[1];
if(nums1[right] > val){
res[index] = nums1[right];
right --;
}else{
res[index] = nums1[left];
left ++;
}
}
return res;
}
}
本文介绍了一种在编程竞赛中解决LeetCode870题(田忌赛马的升级版)的解决方案,利用优先队列实现优势洗牌,以确定在已排序的马匹中,每一轮比赛应选择哪匹马以最大化胜率。
740

被折叠的 条评论
为什么被折叠?



