Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0 Star 0 Fork 0

徐云天/leetcode

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
_1834.java 1.41 KB
一键复制 编辑 原始数据 按行查看 历史
徐云天 提交于 2021-06-17 13:18 +08:00 . 增加1834
import java.util.Arrays;
import java.util.Comparator;
import java.util.PriorityQueue;
public class _1834 {
static class Solution{
public int[] getOrder(int[][] tasks) {
//优先队列 (enqueueTime,processingTime,idx)
// if(tasks.length == 0) return new int[0];
Comparator<int[]> pqComparator = (a, b)->{
if(a[1] == b[1]) return a[2] - b[2];
return a[1] - b[1];
};
int[][] items = new int[tasks.length][3];
for(int i = 0;i < tasks.length;i++){
items[i][0] = tasks[i][0];
items[i][1] = tasks[i][1];
items[i][2] = i;
}
Arrays.sort(items,(a, b)->a[0]-b[0]);
PriorityQueue<int[]> pq = new PriorityQueue<>(pqComparator);
int idx = 0;
int idx2 = 0;
int startTime = -1;
int[] res = new int[tasks.length];
while(idx < items.length || !pq.isEmpty()){
if(pq.isEmpty() && idx < items.length &&items[idx][0] > startTime){
startTime = items[idx][0];
}
while(idx < tasks.length && items[idx][0] <= startTime)
pq.offer(items[idx++]);
int[] cur = pq.poll();
res[idx2++] = cur[2];
startTime += cur[1];
}
return res;
}
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/xuyuntian/leetcode.git
git@gitee.com:xuyuntian/leetcode.git
xuyuntian
leetcode
leetcode
master