20210602:力扣第243周周赛(下)
力扣第243周周赛(下)
- 题目
- 思路与算法
- 代码实现
- 写在最后
题目
- 使用服务器处理任务
- 使用服务器处理任务
- 准时抵达会议现场的最小跳过休息次数
- 准时抵达会议现场的最小跳过休息次数
思路与算法
- 使用服务器处理任务:典型双堆问题,逻辑清晰即可写出代码,今天两题使用Java来写
- 准时抵达会议现场的最小跳过休息次数:不太经典的dp,注意动态转移方程的分析过程,代码中需要注意浮点运算不要超出范围。其余的正常书写即可。
代码实现
- 使用服务器处理任务
class Solution {// int数组:0存放索引,1存放权重,2存放最后一次任务结束时间public int[] assignTasks(int[] servers, int[] tasks) {PriorityQueue<int[]> allServer = new PriorityQueue<>(new Comparator<int[]>(){@Overridepublic int compare(int [] o1, int [] o2) {if(o1[2] != o2[2]) return o1[2] - o2[2];else{if(o1[1] != o2[1]) return o1[1] - o2[1];else return o1[0] - o2[0];}}});PriorityQueue<int[]> freeServer = new PriorityQueue<>(new Comparator<int[]>(){@Overridepublic int compare(int [] o1, int [] o2) {if(o1[1] != o2[1]) return o1[1] - o2[1];else return o1[0] - o2[0]; }});for(int i = 0; i < servers.length; i++) allServer.add(new int[]{i, servers[i], 0});int temp[];int time = 0;for(int i = 0; i < tasks.length; i++){ // 服务器可用时,按顺序添加ready的服务器 while(allServer.size() != 0 && allServer.peek()[2] <= time)freeServer.add(allServer.poll());// 如果当前空闲的Server列表为空,则需要等待下一台可以使用的serverif(freeServer.size() == 0){temp = allServer.poll();time = temp[2]; }else temp = freeServer.poll();// 每次更新当前最先ready的服务器的结束时间,并且回收该服务器到服务器组 temp[2] = time + tasks[i];allServer.add(temp);tasks[i] = temp[0];if(time <= i) time++;}return tasks;}
}
- 准时抵达会议现场的最小跳过休息次数
class Solution {public int minSkips(int[] dist, int speed, int hoursBefore) {int n=dist.length;long[][] dp=new long[n+1][n+1];for(int i=1;i<=n;i++){for(int j=0;j<=n;j++){dp[i][j]=Integer.MAX_VALUE;}}for(int i=1;i<=n-1;i++){for(int j=0;j<=n;j++){if(j==0){dp[i][j]=(dp[i-1][j]+dist[i-1]+speed-1)/speed*speed;}else{dp[i][j]=Math.min(dp[i-1][j-1]+dist[i-1],(dp[i-1][j]+dist[i-1]+speed-1)/speed*speed);}}}for(int i=0;i<=n;i++){if((double)(dp[n-1][i]+dist[n-1])/(double)speed<=(double)hoursBefore)return i;}return -1;}
}
写在最后
- 鸿蒙是真滴nb!
20210602:力扣第243周周赛(下)相关推荐
- 20210601:力扣第243周周赛(上)
力扣第243周周赛(上) 题目 思路与算法 代码实现 写在最后 题目 检查某单词是否等于两单词之和 插入后的最大值 思路与算法 检查某单词是否等于两单词之和:直接转化比较即可 插入后的最大值:负数,则 ...
- 20211202:力扣第268周周赛(下)
力扣第268周周赛(下) 题目 思路与算法 代码实现 写在最后 题目 区间内查询数字的频率 k 镜像数字的和 思路与算法 第三题直接map加二分即可,见代码 这个第四题看了大家的题解有直接打表的,这题 ...
- 20211130:力扣第267周周赛(下)
力扣第267周周赛(下) 题目 思路与算法 代码实现 写在最后 题目 2075 解码斜向换位密码 2076.处理含限制条件的好友请求 思路与算法 第三题是一个比较简单的索引计算题,只需要将斜着放的字符 ...
- (补)20210623:力扣第246周周赛(下)
力扣第246周周赛(下) 题目 思路与算法 代码实现 写在最后 题目 统计子岛屿 查询差绝对值的最小值 思路与算法 统计子岛屿 : 老DFS了,总之就是遍历题,无需多言,搜就行了. 查询差绝对值的最小 ...
- 20210427:力扣第238周周赛(下)
力扣第238周周赛(下) 题目 思路与算法 代码实现 写在最后 题目 所有元音按顺序排布的最长子字符串 最高建筑高度 思路与算法 依旧是滑动窗口,再熟悉滑动窗口的写法即可. 不加解释,本题参考零神专业 ...
- 20210424:力扣第237周周赛(下)
力扣第237周周赛(下) 题目 思路与算法 代码实现 写在最后 题目 单线程 CPU 所有数对按位与结果的异或和 思路与算法 第一题属于一类cpu流水线题目,实现常规方法堆加排序即可. 第二题属于数学 ...
- 20210218:力扣第228周周赛(下)
力扣第228周周赛(下) 题目 思路与算法 代码实现 写在最后 题目 袋子里最少数目的球 一个图中连通三元组的最小度数 思路与算法 经典二分搜索题目,套模板,主要搞清楚如何检查遍历的每一个数是否符合不 ...
- 20201016:力扣第210周周赛题解(下)
力扣第210周周赛题解(下) 题目 思路与算法 代码实现 写在最后 题目 分割两个字符串得到回文串 统计子树中城市之间最大距离 思路与算法 第三题主要逻辑通顺就行,注意分割的索引是一样的,那么判断回文 ...
- 20210612:力扣第244周周赛题解(上)
力扣第244周周赛(上) 题目 思路与算法 代码实现 写在最后 题目 判断矩阵经轮转后是否一致 使数组元素相等的减少操作次数 思路与算法 判断矩阵经轮转后是否一致:本题的前置题目是这道46:.旋转图像 ...
最新文章
- tensorflow checkpoint文件
- WePY框架开发的小程序如何在微信web开发者工具中运行起来
- 关键词 global 和 nonlocal
- 队列的链式存储和实现(C语言)【队列】(8)
- Winform中实现ZedGraph曲线图的图像复制到剪切板、打印预览、获取图片并保存、另存为的功能
- (五)Struts2 标签
- python基础版课件_python基础课件精编版.ppt
- 排序:插入排序与希尔排序
- 特征筛选6——肯德尔相关系数筛选特征(单变量筛选)
- 国家网信办:督促知乎、豆瓣等20家知识社区问答平台开展自查自纠
- 学习面试题(day01)
- Ubuntu下的QQ
- java作用域public ,private ,protected 及不写时的区别(转)
- 编写一个matlab矩阵函数,MATLAB矩阵 及图像函数
- TensorFlow c++ dump graph to pbtxt
- 定性分析与定量分析的区别
- 2021-08-11BUU-CTF:[WUSTCTF2020]alison_likes_jojo
- dell笔记本外接显示器_笔记本连接显示器怎么设置【图文教程】
- python初学者入门小项目之一:在 cowpy中增加自己的人物头像
- 算法细节系列(20):Word Ladder系列
热门文章
- 百度举办区块链论坛,携手多伙伴加速区块链产业落地
- 微信成最频繁网络诈骗犯罪工具;库克再谈乔布斯;PyCharm 2019.2.5 发布| 极客头条...
- 5G 时代,AI 如何破竹而出? | AI ProCon
- 吊打 IE、Firefox,谷歌 Chrome 十年封神记
- App 开发穷途末路?
- 联想危险!74 岁的创始人柳传志站了出来
- 超越 Windows 时代!微软 Build 大会都透露了啥?
- 程序员亲身体验的学历之痛
- 谷歌技术帮助美军方无人机识别更精准
- 谷歌发布 iOS 黑客工具软件,或导致 iOS 11 被越狱