题解 | #牧场边界巡游#

牧场边界巡游

https://www.nowcoder.com/practice/bc7fe78f7bcc49a8bc0afdd7a55ca810

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param matrix int整型二维数组
     * @return int整型一维数组
     */
     public static int[] spiralTravelCounterClockwise (int[][] matrix) {
        // write code here
        LinkedList<Integer> linkedList = new LinkedList<>();
        int count = 0;
        int m=0;
        while (linkedList.size()<matrix.length*matrix[0].length){
            int n = count;
            for(m = count;m < matrix.length-count;m++){
                linkedList.add(matrix[m][n]);
            }
            m--;
            for(n = 1+count;n < matrix[0].length-1-count;n++){
                linkedList.add(matrix[m][n]);
            }
            n = matrix[0].length-1-count;
            for(m = matrix.length-1-count;m >= count;m--){
                linkedList.add(matrix[m][n]);
            }
            m++;
            for(n = matrix[0].length-2-count;n >= 1+count;n--){
                linkedList.add(matrix[m][n]);
            }
            count++;
        }
        int[] arr = new int[matrix.length*matrix[0].length];
        for(int i=0;i<arr.length;i++){
            arr[i] = linkedList.get(i);
        }
        return arr;
    }
}

本题考察的知识点是数组遍历,所用编程语言为java。

首先设立一个循环次数,从左上到坐下,从坐下到右下,再从右下到右上,最后再从右上到左上为一个循环,当此时遍历的循环元素小于数组大小时,此时循环次数加一,继续遍历,直到遍历的元素个数大于数组大小,结束循环。取前数组大小的元素个数重新组成新数组返回,为什么去前面大小的元素个数了,因为有可能会重复遍历,所以取钱数组大小的元素个数

全部评论

相关推荐

10-10 16:30
济宁学院 Java
不想做程序员:面试官:蓝桥杯三等奖?你多去两次厕所都能拿二等吧
点赞 评论 收藏
分享
我的offer呢😡:这不才9月吗,26到明年毕业前能一直找啊,能拿下提前批,转正的,offer打牌的都是有两把刷子的,为什么非要跟他们比。如果别人是9本硕+金牌+好几段大厂实习呢?如果别人是双非通天代呢?如果别人是速通哥呢?,做好自己就行了,我们做不到他们一样提前杀死比赛,但晚点到终点也没啥关系吧
双非应该如何逆袭?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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