题解 | #逆时针吃草#
逆时针吃草
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;
}
}
