Re: [闲聊] 每日leetcode

楼主: JIWP (JIWP)   2024-04-26 22:26:31
边听咩唱歌,编写leestcode
快唱完了,刚好想到要怎么写
1289. Minimum Falling Path Sum II
有一个n*n的matrix,请回传最短落下路径
最短落下路径的限制:相邻两列的元素其行不能相等
思路:
因为行不能相等,所以要维持2条路径
这两条路径的最后元素不能在同一行,在这个限制下这两条路径的值要是最小以及次小
到i-1列的最小值是在j行,那到i列的最小、次小值
一定是由到i-1列的最小值与非j行元素相加、到i-1列次小值与j行元素相加
这两种可能
就这样就可以得到答案了
golang code:
func minFallingPathSum(grid [][]int) int {
rec:=[]int{0,0,-1}
for i:=0;i<len(grid);i++{
var value int
temp:=[]int{math.MaxInt,math.MaxInt,-1}
for j:=0;j<len(grid[0]);j++{
if j!=rec[2]{
value=rec[0]+grid[i][j]
}else{
value=rec[1]+grid[i][j]
}
if value<=temp[0]{
temp[1]=temp[0]
temp[0]=value
temp[2]=j
}else if value<temp[1]{
temp[1]=value
}
}
rec=temp
}
return rec[0]
}
作者: sustainer123 (caster)   2024-04-26 22:33:00
你版剩我刷不了hard了

Links booklink

Contact Us: admin [ a t ] ucptt.com