977.有序数组的平方
题目链接:[977.有序数组的平方][https://leetcode.cn/problems/squares-of-a-sorted-array/]
一开始想的是从中间开始两个指针分别向左右出发,这样可以依照从小到大的顺序。
后来发现把从小到大倒过来找从大到小更简单
209.长度最小的子数组
题目链接:(209.长度最小的子数组)[https://leetcode.cn/problems/minimum-size-subarray-sum/]
暴力法重复过多,时间复杂度O(N2)
在子集合中所有元素和大于等于target的时候进行while循环(不是if!!!),循环中动态调整起始位置
59.螺旋矩阵II
题目链接:59.螺旋矩阵II
- 分享一个比较直观的代码,不用考虑corner case
class Solution {
public int[][] generateMatrix(int n) {
int left = 0, right = n - 1;
int top = 0;
int bottom = n - 1;
int counter = 1;
int [][] maxtrix = new int[n][n];
while(counter != n * n + 1 ){
for(int i = left; i <= right; i++){
maxtrix[top][i] = counter++;
}
top++;
for(int i = top; i <= bottom; i++){
maxtrix[i][right] = counter++;
}
right--;
for(int i = right; i >= left; i--){
maxtrix[bottom][i] = counter++;
}
bottom--;
for(int i = bottom; i >= top; i--){
maxtrix[i][left] = counter++;
}
left++;
}
return maxtrix;
}
}