若N阶方阵中某个元素为0,则将其所在的行与列清零。

清除行列

http://www.nowcoder.com/questionTerminal/c95aac1506574dfc8ad44c3939c6739d

 public int[][] clearZero(int[][] mat, int n) {
        // write code here
        int[][] result = new int[n][n];
        int[] resulttmp = new int[n];
        int[] h= new int[n];

        List<Integer> hlist = new ArrayList<>();
        List<Integer> llist = new ArrayList<>();
        for (int j=0;j<n;j++){
            int[] tmp = mat[j];
            for (int i=0;i<n;i++){
                int count =tmp[i];
                if(count==0){
                    hlist.add(j);
                    llist.add(i);
                }
            }
        }

        for (int x=0;x<n;x++){
            int[] tmp = mat[x];
            for (int y=0;y<n;y++){
                if(hlist.contains(x) ||llist.contains(y)){
                    resulttmp[y] = 0;
                }else {
                    resulttmp[y] = tmp[y];
                }
            }
            result[x] = resulttmp;
            resulttmp = new int[n];
        }
        return result;
    }

全部评论

相关推荐

2025-12-26 18:02
西南民族大学 Java
非为偏安一鱼:点评还行 但是外卖有点太捞了 建议要么爆改加点亮点,要么换个项目
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务