Search
 
SCRIPT & CODE EXAMPLE
 
CODE EXAMPLE FOR CSHARP

spiral matrix

public class Solution 
{
    public IList<int> SpiralOrder(int[][] arr) 
    {
        var ls = new List<int>();
        var count = 0;
        var bol = new bool[arr.Length, arr[0].Length];

        int x = 0;
        int y = 0;
        var r = 0;
        while (count < arr.Length * arr[0].Length)
        {

            // horizontally right
            for (int i = 0; i < arr[0].Length - r; i++)
            {
                if (x < arr[0].Length - r && !bol[y, x])
                {
                    bol[y, x] = true;
                    ls.Add(arr[y][x++]);
                    count++;
                }
            }
            y++;
            x--;

            // vertically down
            for (int i = 0; i < arr.Length - r; i++)
            {
                if (y < arr.Length - r && !bol[y, x])
                {
                    bol[y, x] = true;
                    ls.Add(arr[y++][x]);
                    count++;
                }
            }
            x--;
            y--;

            // horizontally left
            for (int i = 0; i < arr[0].Length - r; i++)
            {
                if (x >= r && !bol[y, x])
                {
                    bol[y, x] = true;
                    ls.Add(arr[y][x--]);
                    count++;
                }
            }
            x++;
            y--;

            // vertically Up
            for (int i = 0; i < arr.Length - r; i++)
            {
                if (y > r && !bol[y, x])
                {
                    bol[y, x] = true;
                    ls.Add(arr[y--][x]);
                    count++;
                }
            }
            x++;
            y++;
            r++;
        }
        return ls;
    }
}
Source by leetcode.com #
 
PREVIOUS NEXT
Tagged: #spiral #matrix
ADD COMMENT
Topic
Name
6+3 =