Leetcode Golang 120. Triangle.go

2019-04-12 10:21:12 浏览数 (1)

版权声明:原创勿转 https://cloud.tencent.com/developer/article/1412841

思路

dp算法

dp数组保存当前行获得的最小值

从下往上转移

初始化为最后一行的值

code

代码语言:javascript复制
func minimumTotal(triangle [][]int) int {
	l := len(triangle)
	if l == 0 {
		return 0
	}
	if l == 1 {
		return triangle[0][0]
	}
	dp := make([]int, l)
	//dp数组初始化成最后一行的值
	for i := 0; i < l; i   {
		dp[i] = triangle[l-1][i]
	}
	for i := l - 2; i >= 0; i-- {
		for j := 0; j < len(triangle[i]); j   {
			dp[j] = min(dp[j], dp[j 1])   triangle[i][j]
		}
	}
	return dp[0]
}
func min(x, y int) int {
	if x > y {
		return y
	}
	return x

}

0 人点赞