209、长度最小的子数组
考察滑动窗口,最主要想明白起始窗口在什么条件下可以滑动
class Solution {
public int minSubArrayLen(int target, int[] nums) {
int sum = 0;
int count = Integer.MAX_VALUE;
int i = 0;
for(int j = 0; j < nums.length; j++) {
sum += nums[j];
while(sum >= target) {
count = Math.min(count, j - i + 1);
sum -= nums[i];
i++;
}
}
return count == Integer.MAX_VALUE ? 0 : count;
}
}
59、螺旋矩阵
听了视频讲解敲出来的,还是菜了
class Solution {
public int[][] generateMatrix(int n) {
int[][] res = new int[n][n];
int startX = 0, startY = 0;
int loop = 1;
int count = 1;
int offset = 1;
int row = 0, col = 0;
while(loop <= n/2) {
for(col = startY; col < n - offset; col++) {
res[startX][col] = count++;
}
for (row = startX; row < n - offset; row++) {
res[row][col] = count++;
}
for (; col > startY; col--) {
res[row][col] = count++;
}
for (; row > startX; row--) {
res[row][col] = count++;
}
startX++;
startY++;
offset++;
loop++;
}
if (n % 2 == 1) {
res[startX][startY] = count;
}
return res;
}
}