60 贪心算法解优势洗牌-田忌赛马问题

问题描述:给定两个大小相等的数组A和B,A相对于B的优势是A[i]>B[i]的缩影数目来确定,返回A的序列,使得其相对于B的优势最大化。

贪心算法求解:如果当前田即最快的马没有其最快的马快,那就用田最慢的马与其赛马,如果比他快,就用最快的马进行比赛,因为需要和齐王最快的马进行比较,从而使用最大堆进行进行装齐王的马,每次弹出一个和田ji的马进行对比,且在最大堆中需要存放马的位置,从而可根据位置进行结果的更新。

java 复制代码
public int[] saima(int []A,int []B)
{
int left=0;
int right=A.length-1;
Arrays.sort(A);
int []res=new int[A.length];
PriorityQueue<int[]>maxheap=new PriorityQueue<>((a,b)->b[0]-a[0]);
for(int i=0;i<B.length;i++)
{
int []temp=maxheap.poll();
if(temp[0]>A[A.length-1])
{
res[temp[1]]=left;
left++;
}else
{
res[temp[1]]=right;
right--;
}
}
return res;
}
相关推荐
C++chaofan1 分钟前
JUC并发编程:LockSupport.park() 与 unpark() 深度解析
java·开发语言·c++·性能优化·高并发·juc
灵犀坠1 分钟前
Vue3 实现音乐播放器歌词功能:解析、匹配、滚动一站式教程
开发语言·前端·javascript·vue.js
人工智能AI技术1 分钟前
Java程序员如何入门AI
java·人工智能
我是小疯子666 分钟前
C++图论:从基础到实战应用
java·c++·图论
小码过河.7 分钟前
设计模式——享元模式
java·设计模式·享元模式
J_liaty7 分钟前
深入理解Java反射:原理、应用与最佳实践
java·开发语言·反射
小冷coding8 分钟前
【面试】围绕‌服务注册与发现、配置中心、熔断限流、API网关路由‌四大核心组件会面临哪些问题?
java·面试·职场和发展
Swift社区9 分钟前
LeetCode 377 组合总和 Ⅳ
算法·leetcode·职场和发展
漫随流水9 分钟前
leetcode算法(404.左叶子之和)
数据结构·算法·leetcode·二叉树
wanghu20249 分钟前
ABC440_D题_题解
算法