题解 | #逆时针吃草#

逆时针吃草

https://www.nowcoder.com/practice/9eaf6e983ec042f7b952a65b46486f8e

using System;
using System.Collections.Generic;

enum direction {
    up,
    down,
    left,
    right
}
class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param matrix int整型二维数组
     * @return int整型一维数组
     */
    public List<int> eatGrass (List<List<int>> matrix) {
        // write code here
        List<int> res = new List<int>();
        int i = matrix.Count - 1;
        int j = 0;
        direction way = direction.up;
        int max = matrix.Count * matrix[0].Count;
        while (res.Count < max) {
            res.Add(matrix[i][j]);

            if (i == 0 && way == direction.up) {
                way = direction.right;
            } else if (i == matrix.Count-1 && way == direction.down) {
                way = direction.left;
            } else if (j == 0 && way == direction.left) {
                way = direction.up;
            } else if (j == matrix[i].Count-1 && way == direction.right) {
                way = direction.down;
            }
            switch (way) {
                case direction.up:
                    i--;
                    break;
                case direction.down:
                    i++;
                    break;
                case direction.left:
                    j--;
                    break;
                case direction.right:
                    j++;
                    break;
                default:
                    break;
            }
        }


        return res;
    }
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务