Spiral print of 2D matrix
class Solution
{
public:
vector<int> spiralOrder(vector<vector<int>> &a)
{
vector<int> v;
int sr = 0, er = a.size() - 1, sc = 0,
ec = a[0].size() - 1, i;
while (sr <= er && sc <= ec)
{
for (i = sc; i <= ec; i++)
v.push_back(a[sr][i]);
sr += 1;
for (i = sr; i <= er; i++)
v.push_back(a[i][ec]);
ec -= 1;
if (er >= sr)
{
for (i = ec; i >= sc; i--)
v.push_back(a[er][i]);
er -= 1;
}
if (ec >= sc)
{
for (i = er; i >= sr; i--)
v.push_back(a[i][sc]);
sc += 1;
}
}
return v;
}
};
Comments
Post a Comment