3 3 0 0 0 0 1 0 0 0 0
2
static long countPaths(int[][] g){int m=g.length;int n=m==0?0:g[0].length; if(m==0||n==0) return 0; long[][] dp=new long[m][n]; if(g[0][0]==1) return 0; dp[0][0]=1; for(int i=0;i<m;i++) for(int j=0;j<n;j++){ if(g[i][j]==1){dp[i][j]=0;continue;} if(i==0&&j==0) continue; long up=i>0?dp[i-1][j]:0; long left=j>0?dp[i][j-1]:0; dp[i][j]=up+left;} return dp[m-1][n-1];}
static long countPaths(int[][] g){int m=g.length;int n=m==0?0:g[0].length; if(m==0||n==0) return 0; long[][] dp=new long[m][n]; if(g[0][0]==1) return 0; dp[0][0]=1; for(int i=0;i<m;i++) for(int j=0;j<n;j++){ if(g[i][j]==1){dp[i][j]=0;continue;} if(i==0&&j==0) continue; long up=i>0?dp[i-1][j]:0; long left=j>0?dp[i][j-1]:0; dp[i][j]=up+left;} return dp[m-1][n-1];}