zoukankan      html  css  js  c++  java
  • 9.10---堆箱子问题(CC150)

    1,牛客网的解题思路:其实这就是求一个最长的递增子序列。   以某一个箱子结尾的最大高度=放在它上面的所有类型中高度最大的那个+他自己的高度。

    import java.util.*;
     
    public class Box {
        public int getHeight(int[] w, int[] l, int[] h, int n) {
            // write code here
            for (int i = 0; i < w.length; i ++) {
                for (int j = 1; j < w.length - i; j ++) {
                    if (w[j] < w[j-1]) {
                        swap(w,j,j-1);
                        swap(l,j,j-1);
                        swap(h,j,j-1);
                    }
                     
                }
            }
            int[] dp = new int[n];
            dp[0] = h[0];
            int max = dp[0];
            for (int i = 1; i < n; i ++) {
                int maxHeight = 0;
                dp[i] = h[i];
                for (int j = i - 1; j >= 0; j --) {
                    if (w[j] < w[i] && l[j] < l[i]) {
                        if (dp[j] > maxHeight) {
                            maxHeight = dp[j];
                        }
                    }
                }
                dp[i] += maxHeight;
                if (dp[i] > max) {
                    max = dp[i];
                }
            }
            return max;
             
        }
         
        public void swap (int[] array, int i, int j) {
            int temp = array[i];
            array[i] = array[j];
            array[j] = temp;
        }
    }
    View Code
  • 相关阅读:
    SpringBoot2 application.properties方式加载配置文件
    php第三十节课
    php第二十九节课
    php第二十八节课
    php第二十七节课
    php第二十六节课
    php第二十五节课
    php第二十四节课
    DBDA
    php第二十三节课
  • 原文地址:https://www.cnblogs.com/yueyebigdata/p/5099596.html
Copyright © 2011-2022 走看看