885. Spiral Matrix III
Solution
就按照規則走,如果再array範圍
row < R && row >= 0 && col >= 0 && col < C
就加入,反之就ingnore直到所有element都加入了。
public int[][] spiralMatrixIII(int R, int C, int r0, int c0) {
List<int[]> ret = new LinkedList<>();
ret.add(new int[]{r0, c0});
int len = 1;
int col = c0, row = r0;
while(ret.size() < R*C){
for(int i = 1; i <= len; i++){
col ++;
if(row < R && row >= 0 && col >= 0 && col < C){
ret.add(new int[]{row, col});
}
}
for(int i = 1; i <= len; i++){
row ++;
if(row < R && row >= 0 && col >= 0 && col < C){
ret.add(new int[]{row, col});
}
}
len++;
for(int i = 1; i <= len; i++){
col --;
if(row < R && row >= 0 && col >= 0 && col < C){
ret.add(new int[]{row, col});
}
}
for(int i = 1; i <= len; i++){
row--;
if(col < C && col >= 0 && row >= 0 && row < R){
ret.add(new int[]{row, col});
}
}
len++;
}
return ret.toArray(new int[ret.size()][2]);
}
Last updated
Was this helpful?