class Solution {
public:
int minSubArrayLen(int target, vector<int>& nums) {
int left = 0;
int right = 0;
int sum = 0;
int minLength = INT_MAX;
for(; right < nums.size(); right++) {
sum += nums[right]; //sum+= 的操作因该在此处,不能在循环尾部
while (sum >= target) {
minLength = min(minLength, right - left + 1);
sum -= nums[left++];
}
}
//判断数组内是否有解。 有返回minLength, 无返回0
return minLength == INT_MAX ? 0 : minLength;
}
};
class Solution {
public:
vector<vector<int>> generateMatrix(int n) {
vector<vector<int>> res(n, vector<int>(n, 0));
int loop = n / 2;
int xStart = 0;
int yStart = 0;
int bound = 1;
int x = 0;
int y = 0;
int count = 1; //计数器
int mid = n / 2; //中间位置
while (loop--) {
x = xStart;
y = yStart;
for (; y < n - bound; y++) {
res[x][y] = count++;
}
for (; x < n - bound; x++) {
res[x][y] = count++;
}
for (; y > xStart; y--) {
res[x][y] = count++;
}
for (; x > yStart; x--) {
res[x][y] = count++;
}
bound += 1;
xStart++;
yStart++;
}
if (n % 2 == 1) {
//奇数矩阵
res[mid][mid] = count;
}
return res;
}
};