题解 | #顺时针打印矩阵#

顺时针打印矩阵

http://www.nowcoder.com/practice/9b4c81a02cd34f76be2659fa0d54342a

//就是每次将上行,右列,下行,左列 都加进去 让list去重 ,然后top++ ; right -- ,bottom-- ,left++, 直到top > bottom 或者 left > right 时退出循环就ok了(简单易懂~~~)
  ArrayList<Integer> list =  new ArrayList<>();
            int top = 0 ;
            int bottom = matrix.length-1;
            int left = 0;
            int right = matrix[0].length -1;
            while(top <= bottom && left <= right){
                //上
                 for(int i = left ; i<=right; i++){
                     if(!list.contains(matrix[top][i])){
                        list.add(matrix[top][i]) ;
                     }
                 }
                //右
                 for(int i = top ; i<=bottom; i++){
                     if(!list.contains(matrix[i][right])){
                        list.add(matrix[i][right]) ;
                     }
                 }
                //下
                  for(int i = right ; i>=left; i--){
                     if(!list.contains(matrix[bottom][i])){
                        list.add(matrix[bottom][i]) ;
                     }
                 }
                //左
                  for(int i = bottom ; i>=top; i--){
                     if(!list.contains(matrix[i][left])){
                        list.add(matrix[i][left]) ;
                     }
                 }
                top++;
                bottom--;
                left++;
                right--;

            }
        return list;


    }
全部评论

相关推荐

01-29 15:45
已编辑
华中科技大学 前端工程师
COLORSN:可以试一下,小厂看技术栈是不是很落后,如果太拉胯就别去,个人认为有实习氛围比你自己琢磨要高效不少,然后就是小厂其实也有可能会问的很难,这都比较难说,还是看自己项目含金量够不够,寒假还能不能推进学习再选择,毕竟去实习过年就10天假了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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