| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 | package mainfunc minimumTotal(triangle [][]int) int {	length := len(triangle)	if length == 0 {		return 0	}	sum := make([]int, length)	sum[0] = triangle[0][0]	for i := 1; i < length; i++ { // Something like Dijkstra		// sum[] stores all minimum which take diff index as endpoint		former := sum[0]		sum[0] = former + triangle[i][0]		for j := 1; j < i; j++ {			tmp := sum[j]			if former < tmp {				sum[j] = former + triangle[i][j]			} else {				sum[j] = tmp + triangle[i][j]			}			former = tmp		}		sum[i] = former + triangle[i][i]	}	min := sum[0]	for i := 1; i < length; i++ {		if sum[i] < min {			min = sum[i]		}	}	return min}// func main() {// 	tri1 := [][]int{// 		{2},// 		{3, 4},// 		{6, 5, 7},// 		{4, 1, 8, 3}}// 	println(minimumTotal(tri1))// 	tri2 := [][]int{}// 	println(minimumTotal(tri2))// 	tri3 := [][]int{// 		{9}}// 	println(minimumTotal(tri3))// }
 |