zoukankan      html  css  js  c++  java
  • leetcode Triangle

    题目连接

    https://leetcode.com/problems/triangle/  

    Triangle

    Description

    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).

    class Solution {
    public:
    	int minimumTotal(vector<vector<int>>& triangle) {
    		if (triangle.empty() || triangle[0].empty()) return 0;
    		n = triangle.size();
    		arr = triangle;
    		dp.resize(n, vector<int>(n));
    		return dfs(0, 0);
    	}
    private:
    	int n;
    	vector<vector<int>> dp;
    	vector<vector<int>> arr;
    	int dfs(int i, int j) {
    		int ret;
    		if (i >= n || j >= n) return 0;
    		if (dp[i][j]) return dp[i][j];
    		if (i == n - 1) ret = 0;
    		ret = arr[i][j] + min(dfs(i + 1, j), dfs(i + 1, j + 1));
    		return dp[i][j] = ret;
    	}
    };
  • 相关阅读:
    regedit注册表
    Environment应用
    VMI帮助类
    Image帮助类
    asp.net core+Postman
    printf和cout的区别详述
    C++指针
    Qt button和buttons区别
    visual studio收函数
    编译警告
  • 原文地址:https://www.cnblogs.com/GadyPu/p/5034104.html
Copyright © 2011-2022 走看看