977. 有序数组的平方
int* sortedSquares(int* nums, int numsSize, int* returnSize) {int left = 0, right = numsSize-1;*returnSize = numsSize;int *array = (int *)malloc(sizeof(int) * numsSize);for (int i = numsSize-1; i >= 0; i--) {if (nums[left]*nums[left] > nums[right]*nums[right]) {array[i] = nums[left]*nums[left];left++;} else {array[i] = nums[right]*nums[right];right--;}}return array;
}
需要把数组的大小赋值,以为是让将数组结果放到returnSize
…
209. 长度最小的子数组
#define max 1e5 + 10
// 滑动窗口
int minSubArrayLen(int target, int* nums, int numsSize) {int ans = 1e5 + 10, sum = 0;int left = 0, right = 0;while (right < numsSize) {sum += nums[right];while (sum >= target) {ans = ans < right - left + 1 ? ans : right - left + 1;sum -= nums[left++];}right++;}return ans == max ? 0 : ans;
}
59. 螺旋矩阵 II
/*** Return an array of arrays of size *returnSize.* The sizes of the arrays are returned as *returnColumnSizes array.* Note: Both returned array and *columnSizes array must be malloced, assume* caller calls free().*/
int** generateMatrix(int n, int* returnSize, int** returnColumnSizes) {*returnSize = n;*returnColumnSizes = (int *)malloc(sizeof(int) * n);int** array = (int **)malloc(sizeof(int *) * n);int i, j, k = 1, h;for (i = 0; i < n; i++) {array[i] = (int *)malloc(sizeof(int) * n);(*returnColumnSizes)[i] = n;}for (h = 0; h < n/2; h++) {for (j = h; j < n-h; j++) {i = h;array[i][j] = k++;}for (i = h + 1; i < n-h; i++) {j = n - 1 - h;array[i][j] = k++;}for (j = n - 1 - h-1; j >= h; j--) {i = n - 1 - h;array[i][j] = k++;}for (i = n - 1 - h-1; i > h; i--) {j = h;array[i][j] = k++;}}if (n % 2) {array[n/2][n/2] = k;}return array;
}
c提交的二维数组, 需要用指针返回每一行的成员数量