C# Dp Solution


  • 0
    P
    public class Solution {
        public int UniquePathsWithObstacles(int[,] mat) {
                int m = mat.GetLength(0);
                int n = mat.GetLength(1);
                int[,] num = new int[m, n];
                num[0, 0] = mat[0, 0] == 1 ? 0 : 1;
    
                for (int i = 1; i < m; i++)
                    num[i, 0] = mat[i,0] == 1 || num[i-1,0] == 0 ? 0 : 1;
    
                for (int j = 1; j < n; j++)
                    num[0, j] = mat[0,j] == 1 || num[0,j-1] == 0 ? 0 : 1;
    
                for (int i = 1; i < m; i++)
                {
                    for (int j = 1; j < n; j++)
                    {
                        if (mat[i, j] == 1)
                            num[i, j] = 0;
                        else
                            num[i, j] = num[i - 1, j] + num[i, j - 1];
                    }
                }
                return num[m - 1,n - 1];
        }
    }

Log in to reply
 

Looks like your connection to LeetCode Discuss was lost, please wait while we try to reconnect.