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;
}
相关推荐
寻见903几秒前
10 分钟吃透 MyBatis 核心|从底层原理到实战技巧,Java 开发者必藏(无废话干货)
java·mysql·mybatis
颜酱1 分钟前
理解并查集Union-Find:从原理到练习
javascript·后端·算法
隔壁小邓1 分钟前
分布式事务
java·后端
玛卡巴卡ldf3 分钟前
【LeetCode 手撕算法】(双指针) 1-两数之和、283-移动零、11-盛最多水的容器、15-三数之和
数据结构·算法·leetcode
OxyTheCrack6 分钟前
简述各语言GC(垃圾回收)机制
开发语言
李昊哲小课8 分钟前
电商系统项目教程
开发语言·前端·javascript
啦啦啦_999921 分钟前
1. AI 学习目录
java·人工智能
mygugu22 分钟前
归纳理解epoch、batch、batch size、step、iteration深度学习名词
人工智能·算法
不懂英语的程序猿32 分钟前
【Java工具类】Java提取最新错误日志(附 AI 对接思路)
java
indexsunny32 分钟前
互联网大厂Java面试实录:从Spring Boot到微服务架构的深度剖析
java·spring boot·redis·kafka·microservices·互联网大厂·面试经验