题目1: 209. 长度最小的子数组
代码:
class Solution {
public:
int minSubArrayLen(int target, vector<int>& nums) {
int minSize = INT_MAX;
int sum = 0;
for(int left = 0, right = 0; right < nums.size(); right++) {
sum += nums[right];
while(sum >= target) {
if(minSize > right - left + 1) {
minSize = right - left + 1;
}
sum -= nums[left];
++left;
}
}
return minSize == INT_MAX ? 0 : minSize;
}
};
题目2: 59. 螺旋矩阵 II
代码:
class Solution {
public:
vector<vector<int>> generateMatrix(int n) {
vector<vector<int>> ans(n, vector<int>(n));
int startx = 0;
int starty = 0;
int offset = 1;
int curNum = 1;
int loop = n / 2;
while(loop--) {
int i = startx;
int j = starty;
for(; j < n - offset; j++) {
ans[i][j] = curNum++;
}
for(; i < n - offset; i++) {
ans[i][j] = curNum++;
}
for(; j > starty; j--) {
ans[i][j] = curNum++;
}
for(; i > startx; i--) {
ans[i][j] = curNum++;
}
++startx;
++starty;
++offset;
}
if(n % 2 == 1) {
ans[n / 2][n / 2] = n * n;
}
return ans;
}
};