有点难跟上,先把进度完成。
笔记
有序数组的平方,如果正常写然后冒泡排序会超时。
双指针的思想也是要遍历数组,既可以是一个遍历一个干别的,也可以是从两头相向遍历。
长度最小的子数组,注意滑动窗口一个指针指向窗口末尾。
螺旋矩阵思路还是没太明白,记录错误代码明早复盘。
class Solution {
public:
vector<vector<int>> generateMatrix(int n) {
int loop = n/2;
int startx = 0, starty = 0;
int index = 0;
int middle = n/2;
int offset = 1;
int count =1;
vector<vector<int>> res(n,vector<int>(n,0));
while(loop--){
int i = startx;
int j = starty;
for(int j = starty; j < n - offset; j++){
res[startx][j] = count++;
}
for(int i = startx; i < n - offset; i++){
res[i][j] = count++;
}
for(; j > starty ; j--){
res[i][j] = count++;
}
for(; i > startx; i--){
res[i][j] = count++;
}
startx++;
starty++;
offset++;
}
if (n%2 != 0){
res [middle][middle] = count;
}
return res;
}
输入3
输出[[3,2,0],[4,5,0],[0,0,0]]
预期结果[[1,2,3],[8,9,4],[7,6,5]]