leetcode 209 解决方法 :滑动窗口
class Solution
{
public:
int minSubArrayLen(int target, vector<int>& nums)
{
int l = 0, r = 0;
int ans = nums.size() + 1;
int sum = 0;
while (r < nums.size())
{
/*做的时候在这个地方int sum=0,出现了错误一直没发现,在循环内int sum=0
会导致结束一次循环的时候,进行下一次循环时原有的累加数据变成初始值0 */
sum += nums[r];
while (sum >= target)
{
int len;
len = r - l + 1;
sum -= nums[l];
l++;
ans = min(ans, len);
}
r++;
}
return ans == nums.size()+1 ? 0 : ans;
}
};
leetcode 59 螺旋矩阵 II
class Solution {
public:
vector<vector<int>> generateMatrix(int n) {
vector<vector<int>>vec(n, vector<int>(n, 0));
int xi = 0, yj = 0;
int loop = n / 2;
int center = n / 2;
int count = 1;
int offset = 1;
int i, j;
while (loop--)
{
i = xi, j = yj;
for (j; j < n - offset; j++)
{
vec[i][j] = count++;
}
for (i; i < n - offset; i++)
{
vec[i][j] = count++;
}
for (; j > yj; j--)
{
vec[i][j] = count++;
}
for (; i > xi; i--) {
vec[i][j] = count++;
}
xi++;
yj++;
offset += 1;
}
if (n % 2)
{
vec[center][center] = count;
}
return vec;
}
};