码迷,mamicode.com
首页 > 其他好文 > 详细

[Algo] Min Cost to Cut Ropes

时间:2020-04-06 09:45:55      阅读:78      评论:0      收藏:0      [点我收藏+]

标签:generate   one   code   pre   cti   cos   ble   return   this   

Given n ropes of different lengths, we need to connect these ropes into one rope. We can connect only 2 ropes at a time. The cost required to connect 2 ropes is equal to sum of their lengths. The length of this connected rope is also equal to the sum of their lengths. This process is repeated until n ropes are connected into a single rope. Find the min possible cost required to connect all ropes.

 

Example 1:

 

Input: ropes = [8, 4, 6, 12]
Output: 58
Explanation: The optimal way to connect ropes is as follows
1. Connect the ropes of length 4 and 6 (cost is 10). Ropes after connecting: [8, 10, 12]
2. Connect the ropes of length 8 and 10 (cost is 18). Ropes after connecting: [18, 12]
3. Connect the ropes of length 18 and 12 (cost is 30).
Total cost to connect the ropes is 10 + 18 + 30 = 58

 

Example 2:

 

Input: ropes = [20, 4, 8, 2]
Output: 54

 

Example 3:

 

Input: ropes = [1, 2, 5, 10, 35, 89]
Output: 224

 

Example 4:

 

Input: ropes = [2, 2, 3, 3]
Output: 20


import java.util.PriorityQueue;

public class MinCostRope {
    
    public static int getMinCost(int[] ropes) {
        PriorityQueue<Integer> pq = new PriorityQueue<>();
        for (int num : ropes) {
            pq.offer(num);
        }
        int res = 0;
        while (pq.size() > 1) {
            int num1 = pq.poll();
            int num2 = pq.poll();
            int sum = num1 + num2;
            res += sum;
            pq.offer(sum);
        }
        return res;
    }

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int[] ropes = {2, 2, 3, 3};
        int res = getMinCost(ropes);
        System.out.println(res);
    }

}

 

[Algo] Min Cost to Cut Ropes

标签:generate   one   code   pre   cti   cos   ble   return   this   

原文地址:https://www.cnblogs.com/xuanlu/p/12640407.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!