題目描述:
在 r 行 c 列的矩陣上,我們從 (r0, c0) 面朝東面開始
這裡,網格的西北角位於第一行第一列,網格的東南角位於最後一行最後一列。
現在,我們以順時針按螺旋狀行走,訪問此網格中的每個位置。
每當我們移動到網格的邊界之外時,我們會繼續在網格之外行走(但稍後可能會返回到網格邊界)。
最終,我們到過網格的所有 r * c 個空間。
按照訪問順序返回表示網格位置的座標列表。
示例 1:
輸入:r = 1, c = 4, r0 = 0, c0 = 0
輸出:[[0,0],[0,1],[0,2],[0,3]]
示例 2:
輸入:r = 5, c = 6, r0 = 1, c0 = 4
輸出:[[1,4],[1,5],[2,5],[2,4],[2,3],[1,3],[0,3],[0,4],[0,5],[3,5],[3,4],[3,3],[3,2],[2,2],[1,2],[0,2],[4,5],[4,4],[4,3],[4,2],[4,1],[3,1],[2,1],[1,1],[0,1],[4,0],[3,0],[2,0],[1,0],[0,0]]
1 <= r <= 100
1 <= c <= 100
0 <= r0 < r
0 <= c0 < c
其實很簡單,方向的迴圈是:右下左上,每次完成兩個操作後,將移動的次數+1即可,比如一開始是分別向右和下移動一次,當向左移動時需要移動兩次,以此類推…
寫的比較冗餘,其實那個set不需要也行
**:
class solution );
int time =1;
while (set.size() != tems));}}
tme = time;
while (tme-- > 0));}}
time ++;
tme = time;
while (tme-- > 0));}}
tme = time;
while (tme-- > 0));}}
time ++;
}int result = new int[tem.size()][2];
for (int i = 0; i < result.length; i++)
return result;
}public boolean isva(int x,int y,int r,int c)
return true;}}
改一下
速度快多了
leetcode 885 螺旋矩陣 III
目錄 一 題目內容 二 解題思路 三 在 r 行 c 列的矩陣上,我們從 r0,c0 面朝東面開始這裡,網格的西北角位於第一行第一列,網格的東南角位於最後一行最後一列。現在,我們以順時針按螺旋狀行走,訪問此網格中的每個位置。每當我們移動到網格的邊界之外時,我們會繼續在網格之外行走 但稍後可能會返回到...
螺旋方針(螺旋矩陣)
螺旋方陣 time limit 1000ms memory limit 65536kb problem description 的螺旋方陣當n 5和n 3時分別是如下的形式 請給出乙個程式,對於任意的輸入 0 11 輸出按照上面規律所獲得的 的螺旋方陣。input 輸入第一行為整數 0 10 代表有...
平方矩陣 III
輸入整數n,輸出乙個n階的二維陣列m。這個n階二維陣列滿足m i j 2i j。具體形式可參考樣例。輸入格式 輸入包含多行,每行包含乙個整數n。當輸入行為n 0時,表示輸入結束,且該行無需作任何處理。輸出格式 對於每個輸入整數n,輸出乙個滿足要求的n階二維陣列。每個陣列佔n行,每行包含n個用空格隔開...