基本上没遇到什么困难 - 主要是掌握双指针的思想(双指针可以保留记忆和位置)和滑动窗口的思想
主要是逻辑没有理清楚,在保留最后一个空格不赋值的逻辑后,代码变得十分简单。在看完视频之后第二次代码五分钟就写好了。注意后面的是startx和starty,因为是一个起始位置。
同时还有一个要注意的点是:变量的定义。第一次另一个没有写出来的原因是变量太少了,比如混淆了starty和y,一起使用了他们,导致逻辑不清楚。
总结:要注意边界感和变量的使用
听课总结的笔记
class Solution {
public int[][] generateMatrix(int n) {
int loop = 0;
int[][] result = new int[n][n];
int startx = 0;
int starty = 0;
int offset = 1;
int number = 1;
int x = 0;
int y = 0;
while (loop < n/2){
for(y = starty;y < n-offset;y++){
result[startx][y] = number;
number++;
}
for(x = startx;x< n-offset;x++){
result[x][y] = number;
number++;
}
for (y=y;y>starty;y--){
result[x][y] = number;
number++;
}
for (x=x;x>startx;x--){
result[x][y] = number;
number++;
}
offset++;
startx++;
starty++;
loop++;
}
if ( n%2 == 1){
result[startx][starty] = number;
}
return result;
}
}