zoukankan      html  css  js  c++  java
  • LeetCode

    题目:

    Given a triangle, find the minimum path sum from top to bottom. Each step you may move to adjacent numbers on the row below.

    For example, given the following triangle

    [
         [2],
        [3,4],
       [6,5,7],
      [4,1,8,3]
    ]
    

    The minimum path sum from top to bottom is 11 (i.e., 2 + 3 + 5 + 1 = 11).

    Note:
    Bonus point if you are able to do this using only O(n) extra space, where n is the total number of rows in the triangle.

    思路:

    1) 递归,代码很简单,但超时了

    package recursion;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class Triangle {
    
        public int minimumTotal(List<List<Integer>> triangle) {
            int m = triangle.size();
            return minPath(triangle, 0, 0, m, 0);
        }
        
        private int minPath(List<List<Integer>> triangle, int row, int col, int m, int prevTotal) {
            if (row >= m) return prevTotal;
            prevTotal += triangle.get(row).get(col);
            return Math.min(minPath(triangle, row + 1, col, m, prevTotal), minPath(triangle, row + 1, col + 1, m, prevTotal));
        }
    
    }

    2) 从下往上进行扫描

    package recursion;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class Triangle {
    
        public int minimumTotal(List<List<Integer>> triangle) {
            int m = triangle.size();
            int n = triangle.get(m - 1).size();
            int[] res = new int[n + 1];
            for (int i = m - 1; i >= 0; --i) {
                for (int j = 0; j < triangle.get(i).size(); ++j) {
                    res[j] = Math.min(res[j], res[j + 1]) + triangle.get(i).get(j);
                }
            }
            return res[0];
        }
    
    }
  • 相关阅读:
    k8s系列---service
    算法
    golang-练习ATM --面向对象实现
    golang-练习ATM
    k8s系列---pod介绍
    12.20 一组v-if/v-else-if/v-else 的元素类型相同,应该使用 key
    12.20 await 操作符的学习(await后跟非promsie、promsie(成功/失败)的几种情况测试)
    12.20 async关键字的学习
    12.20 falsy变量
    12.19 js中递归优化(递归爆栈)
  • 原文地址:https://www.cnblogs.com/null00/p/5130298.html
Copyright © 2011-2022 走看看