• [Algo] Min Cost to Cut Ropes


    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);
        }
    
    }
  • 相关阅读:
    adfs环境安装
    joinquant网站
    test
    对C转换说明符的误解以及关于数组的一些知识
    正确求平方根的整数部分方法
    单链表的交换排序法
    链表的冒泡排序
    240页345题
    C语言中对数组名取地址
    单链表的基础操作练习
  • 原文地址:https://www.cnblogs.com/xuanlu/p/12640407.html
Copyright © 2020-2023  润新知