牛牛是一只聪明的牛,它是一个任务调度专家。在一个动物园中,有许多动物需要执行不同的任务。牛牛需要设计一个任务调度系统来管理动物的任务执行顺序。 每个动物的任务执行时间不同,并且每个动物只能执行一次任务。牛牛希望通过合理的任务调度,使得完成所有任务的总时间最小。 请你编写一个函数animalTaskScheduler,接收一个整数数组taskDurations和一个整数capacity作为参数,表示动物的任务执行时间和可以同时执行任务的容量。函数应返回一个整数,表示完成所有任务的最短时间。
区块链毕设网qklbishe.com为您提供问题的解答
牛牛是一只聪明的牛,它是一个任务调度专家。在一个动物园中,有许多动物需要执行不同的任务。牛牛需要设计一个任务调度系统来管理动物的任务执行顺序。
每个动物的任务执行时间不同,并且每个动物只能执行一次任务。牛牛希望通过合理的任务调度,使得完成所有任务的总时间最小。
请你编写一个函数animalTaskScheduler
,接收一个整数数组taskDurations
和一个整数capacity
作为参数,表示动物的任务执行时间和可以同时执行任务的容量。函数应返回一个整数,表示完成所有任务的最短时间。
第一次遇到这种题型,一开始我以为要用到排序,但是按照题目的示例一,不能对给定的任务排序,只能按照任务给定的顺序去调度。如果经过排序,可以找到更短的调度时间。
使用模拟和贪心的方法找到最短的调度时间。
遍历所有任务,用优先队列保存调度的时间,然后在队列的容量不超过capacity时,把当前的任务加到优先队列中,当优先队列的容量超过capacity时,就把队列中用时最短的一个任务找出来,用 t 保存这个最短的任务,然后 t = t + taskDurations[i] 保存当前任务和新任务的时间,可以理解为从当前的优先队列里面拿出一个用时最短的任务,这个任务做完了还有多余的时间来做其他的任务,所以需要从taskDurations里面取一个任务跟在当前 t 任务的后面,并且加到优先队列中,遍历完taskDurations,遍历优先队列,找到用时最长的任务即为结果。
代码如下
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param taskDurations int整型一维数组 * @param capacity int整型 * @return int整型 */ public int animalTaskScheduler (int[] taskDurations, int capacity) { // write code here Queue<Integer> queue=new PriorityQueue<>(); for(int i=0; i<taskDurations.length; i++){ if(queue.size()<capacity){ queue.add(taskDurations[i]); } else { int t=queue.poll(); t+=taskDurations[i]; queue.add(t); } } int res=0; while(!queue.isEmpty()){ res=queue.poll(); } return res; } }
编辑于 今天 15:16:43
以上就是关于问题牛牛是一只聪明的牛,它是一个任务调度专家。在一个动物园中,有许多动物需要执行不同的任务。牛牛需要设计一个任务调度系统来管理动物的任务执行顺序。 每个动物的任务执行时间不同,并且每个动物只能执行一次任务。牛牛希望通过合理的任务调度,使得完成所有任务的总时间最小。 请你编写一个函数animalTaskScheduler,接收一个整数数组taskDurations和一个整数capacity作为参数,表示动物的任务执行时间和可以同时执行任务的容量。函数应返回一个整数,表示完成所有任务的最短时间。的答案
欢迎关注区块链毕设网-
专业区块链毕业设计成品源码,定制。
区块链NFT链游项目方科学家脚本开发培训
从业7年-专注一级市场
微信:btc9767
TELEGRAM :https://t.me/btcok9
具体资料介绍
web3的一级市场千万收益的逻辑
进群点我
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 牛牛是一只聪明的牛,它是一个任务调度专家。在一个动物园中,有许多动物需要执行不同的任务。牛牛需要设计一个任务调度系统来管理动物的任务执行顺序。 每个动物的任务执行时间不同,并且每个动物只能执行一次任务。牛牛希望通过合理的任务调度,使得完成所有任务的总时间最小。 请你编写一个函数animalTaskScheduler,接收一个整数数组taskDurations和一个整数capacity作为参数,表示动物的任务执行时间和可以同时执行任务的容量。函数应返回一个整数,表示完成所有任务的最短时间。
微信:btc9767
TELEGRAM :https://t.me/btcok9
具体资料介绍
web3的一级市场千万收益的逻辑
进群点我
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 牛牛是一只聪明的牛,它是一个任务调度专家。在一个动物园中,有许多动物需要执行不同的任务。牛牛需要设计一个任务调度系统来管理动物的任务执行顺序。 每个动物的任务执行时间不同,并且每个动物只能执行一次任务。牛牛希望通过合理的任务调度,使得完成所有任务的总时间最小。 请你编写一个函数animalTaskScheduler,接收一个整数数组taskDurations和一个整数capacity作为参数,表示动物的任务执行时间和可以同时执行任务的容量。函数应返回一个整数,表示完成所有任务的最短时间。
进群点我
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 牛牛是一只聪明的牛,它是一个任务调度专家。在一个动物园中,有许多动物需要执行不同的任务。牛牛需要设计一个任务调度系统来管理动物的任务执行顺序。 每个动物的任务执行时间不同,并且每个动物只能执行一次任务。牛牛希望通过合理的任务调度,使得完成所有任务的总时间最小。 请你编写一个函数animalTaskScheduler,接收一个整数数组taskDurations和一个整数capacity作为参数,表示动物的任务执行时间和可以同时执行任务的容量。函数应返回一个整数,表示完成所有任务的最短时间。
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 牛牛是一只聪明的牛,它是一个任务调度专家。在一个动物园中,有许多动物需要执行不同的任务。牛牛需要设计一个任务调度系统来管理动物的任务执行顺序。 每个动物的任务执行时间不同,并且每个动物只能执行一次任务。牛牛希望通过合理的任务调度,使得完成所有任务的总时间最小。 请你编写一个函数animalTaskScheduler,接收一个整数数组taskDurations和一个整数capacity作为参数,表示动物的任务执行时间和可以同时执行任务的容量。函数应返回一个整数,表示完成所有任务的最短时间。