go解题答案

  • 思路概括:动态规划

  • 思路核心:
    1、dp索引从0开始
    2、第一行只能从左边走
    3、第一列只能从右边走
    4、其他行列可以从左边走和右边走

    func minPathSum( matrix [][]int ) int {
      row:=len(matrix)
      col:=len(matrix[0])
      if row==0{
          return 0
      }
      dp:=make([][]int,row) //初始化行
       for i:=0;i<row;i++{
          dp[i]=make([]int,col) //初始化列
      }
      dp[0][0]=matrix[0][0] //初始化原点
      for i:=1;i<row;i++{
          dp[i][0]=dp[i-1][0] + matrix[i][0] //i行0列计算
      }
      for i:=1;i<col;i++{
          dp[0][i]=dp[0][i-1] + matrix[0][i] //0行1列计算
      }
    
      for i:=1;i<row;i++{
          for j:=1;j<col;j++{
              dp[i][j]=Min(dp[i-1][j],dp[i][j-1])+matrix[i][j]//其他行列计算
          }
      }
      return dp[row-1][col-1]
    }

    如果有帮助请点个赞哦, 更多文章请看我的博客

    题主背景

  • 从业8年——超级内卷500Q技术经理——目前专注go和微服务架构