欢迎光临散文网 会员登陆 & 注册

LeetCode 2335. Minimum Amount of Time to Fill Cups

2023-05-02 14:33 作者:您是打尖儿还是住店呢  | 我要投稿

You have a water dispenser that can dispense cold, warm, and hot water. Every second, you can either fill up 2 cups with different types of water, or 1 cup of any type of water.

You are given a 0-indexed integer array amount of length 3 where amount[0]amount[1], and amount[2] denote the number of cold, warm, and hot water cups you need to fill respectively. 

Return the minimum number of seconds needed to fill up all the cups.

 

Example 1:

Input: amount = [1,4,2]

Output: 4

Explanation: 

One way to fill up the cups is: 

Second 1: Fill up a cold cup and a warm cup. 

Second 2: Fill up a warm cup and a hot cup.

Second 3: Fill up a warm cup and a hot cup. 

Second 4: Fill up a warm cup. 

It can be proven that 4 is the minimum number of seconds needed.

Example 2:

Input: amount = [5,4,4]

Output: 7

Explanation: 

One way to fill up the cups is: 

Second 1: Fill up a cold cup, and a hot cup. 

Second 2: Fill up a cold cup, and a warm cup. 

Second 3: Fill up a cold cup, and a warm cup. 

Second 4: Fill up a warm cup, and a hot cup. 

Second 5: Fill up a cold cup, and a hot cup. 

Second 6: Fill up a cold cup, and a warm cup. 

Second 7: Fill up a hot cup.

Example 3:

Input: amount = [5,0,0]

Output: 5

Explanation: 

Every second, we fill up a cold cup.

可以同时接2个不同类型的咖啡,也可以只接一种咖啡;

那么我们如何保证接的次数最少,就要同时接2种咖啡的次数最多即可;

所以每次都要去看剩下的是哪2种咖啡剩的最多,所以每接一次就要排一次序,

于是就想到了优先队列,只是排序的规则是从大到小,而不是从小到大,

所以需要重写一下compare的方法就行了;

下面是代码:

Runtime: 3 ms, faster than 35.27% of Java online submissions for Minimum Amount of Time to Fill Cups.

Memory Usage: 40.4 MB, less than 35.50% of Java online submissions for Minimum Amount of Time to Fill Cups.


LeetCode 2335. Minimum Amount of Time to Fill Cups的评论 (共 条)

分享到微博请遵守国家法律