Content-Length: 12735 | pFad | https://leetcode-in-net.github.io/LeetCodeNet/G0101_0200/S0120_triangle

LeetCode in Net | C#-based LeetCode algorithm problem solutions, regularly updated.

LeetCode in Net

120. Triangle

Medium

Given a triangle array, return the minimum path sum from top to bottom.

For each step, you may move to an adjacent number of the row below. More formally, if you are on index i on the current row, you may move to either index i or index i + 1 on the next row.

Example 1:

Input: triangle = [[2],[3,4],[6,5,7],[4,1,8,3]]

Output: 11

Explanation:

The triangle looks like:
    2
   3 4
  6 5 7
 4 1 8 3
 The minimum path sum from top to bottom is 2 + 3 + 5 + 1 = 11 (underlined above). 

Example 2:

Input: triangle = [[-10]]

Output: -10

Constraints:

Follow up: Could you do this using only O(n) extra space, where n is the total number of rows in the triangle?

Solution

using System.Collections.Generic;

public class Solution {
    public int MinimumTotal(IList<IList<int>> triangle) {
        if (triangle == null || triangle.Count == 0) {
            return 0;
        }
        int n = triangle.Count;
        int[][] dp = new int[n][];
        for (int i = 0; i < n; i++) {
            dp[i] = new int[triangle[n - 1].Count];
            for (int j = 0; j < dp[i].Length; j++) {
                dp[i][j] = -10001;
            }
        }
        return Dfs(triangle, dp, 0, 0);
    }

    private int Dfs(IList<IList<int>> triangle, int[][] dp, int row, int col) {
        if (row >= triangle.Count) {
            return 0;
        }
        if (dp[row][col] != -10001) {
            return dp[row][col];
        }
        int sum = triangle[row][col] +
            System.Math.Min(Dfs(triangle, dp, row + 1, col), Dfs(triangle, dp, row + 1, col + 1));
        dp[row][col] = sum;
        return sum;
    }
}








ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: https://leetcode-in-net.github.io/LeetCodeNet/G0101_0200/S0120_triangle

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy