244 螺旋矩陣 III

2021-09-28 15:44:18 字數 1908 閱讀 2966

題目描述:

在 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個用空格隔開...