import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param obstacleGrid char字符型ArrayList<ArrayList<>> 
     * @return int整型
     */
    public int uniquePathsWithObstacles (ArrayList<ArrayList<Character>> obstacleGrid) {
        // write code here
        int m=obstacleGrid.size();
        // System.out.print(m);
        int n=obstacleGrid.get(0).size();
        // System.out.print(n);
        if(obstacleGrid.get(0).get(0)=='#'||obstacleGrid.get(m-1).get(n-1)=='#'){
            return 0;
        }
        int[][] dp=new int[m][n];
        for(int j=0;j<n&&obstacleGrid.get(0).get(j)!='#';j++){
            dp[0][j]=1;
           
        }
        for(int i=0;i<m&&obstacleGrid.get(i).get(0)!='#';i++){
            dp[i][0]=1;
        }
        
        for(int i=1;i<m;i++){
            for(int j=1;j<n;j++){
                if(obstacleGrid.get(i).get(j)=='#'){
                    dp[i][j]=0;
                    continue;
                }
                dp[i][j]=(dp[i - 1][j] + dp[i][j - 1]);
               
                
            }
        }
         System.out.println(dp[m-1][n-1]);
        return dp[m-1][n-1];
    }
}

写这篇题解就是为了吐槽,我真是服了,题干说的是1可以走,0不可以走。

但实际传参是字符类型,也不说明实际是“#”表示不可以走,

提交了好多次都不通过,想要看看是哪条用例不通过,点击查看用例,弹出个“不支持对比”的弹窗,是什么鬼

最后还是把题目框拉到最大,才在一群A中看出来了个'#'