长度最小的子数组
随想录的文章链接
programmercarl.com/0977.%E6%9C…
看完代码随想录之后的想法
从后往前生成比较巧妙。
自己实现过程中遇到哪些困难
没碰到困难。
今日收获,记录一下自己的学习时长
文章15分钟,写代码15分钟。
public static int[] sortSquares(int[] nums) {
if (nums == null || nums.length == 0) {
return new int[0];
}
int[] result = new int[nums.length];
int index = nums.length - 1;
int i = 0, j = nums.length - 1;
while (i <= j) {
int left = nums[i] * nums[i];
int right = nums[j] * nums[j];
if (left < right) {
result[index--] = right;
j--;
} else {
result[index--] = left;
i++;
}
}
return result;
}
长度最小的子数组
随想录的文章链接
programmercarl.com/0209.%E9%95…
看完代码随想录之后的想法
双指针的操作有点烧脑。
自己实现过程中遇到哪些困难
没碰到困难。
今日收获,记录一下自己的学习时长
文章15分钟,写代码20分钟。
public static int minSubArrayLen(int target, int[] nums) {
if (nums == null || nums.length == 0) {
return 0;
}
int i = 0, j = 0;
int sum = 0;
int length = nums.length + 1;
while (j < nums.length) {
if (sum + nums[j] >= target) {
length = Math.min(length, j - i + 1);
sum = sum - nums[i];
i++;
} else {
sum = sum + nums[j];
j++;
}
}
return length == nums.length + 1 ? 0 : length;
}
螺旋矩阵
随想录的文章链接
programmercarl.com/0059.%E8%9E…
看完代码随想录之后的想法
之前面试做过螺旋矩阵的打印,这次是生成螺旋矩阵,逻辑是一样的。随想录提供的代码比较简洁,再一次写还是出现多处错误。
自己实现过程中遇到哪些困难
循环的起始位置、奇数的最后一个位置判断,第一次没写对。
今日收获,记录一下自己的学习时长
文章20分钟,写代码30分钟。
public static int[][] generateMatrix(int n) {
int[][] result = new int[n][n];
int num = 1;
int i = 0, j = 0;
int loop = 0;
while (loop < n/2) {
for (i = loop; i < n - 1 - loop; i++) { // 从左到右
result[loop][i] = num++;
}
for (j = loop; j < n - 1 - loop; j++) { // 从上到下
result[j][i] = num++;
}
for (; i > loop; i--) { // 从右到左
result[j][i] = num++;
}
for (; j > loop; j--) { // 从下到上
result[j][i] = num++;
}
loop++;
}
if (n % 2 == 1) {
result[loop][loop] = num;
}
return result;
}