算法训练营day2
977. 有序数组的平方
暴力排序
class Solution {
public:
vector<int> sortedSquares(vector<int>& nums) {
vector<int> res;
for(int i = 0;i < nums.size();i++)
{
res.push_back(nums[i]*nums[i]);
}
sort(res.begin(),res.end());
return res;
}
};
209. 长度最小的子数组
class Solution {
public:
int minSubArrayLen(int target, vector<int>& nums) {
int result = INT_MAX;
int sum = 0;
int i = 0;
int len = 0;
for(int j = 0;j < nums.size();j++)
{
sum += nums[j];
while(sum >= target) //这里循环多次,不是if,是while!!!!
{
len = j - i + 1;
result = min(result,len);
sum -= nums[i++];
}
}
if(result == INT_MAX) result = 0;
return result;
}
};
59. 螺旋矩阵 II
没调试没调试啊,找半天哪个变量写错了愣是没找到!!!
class Solution {
public:
vector<vector<int>> generateMatrix(int n) {
vector<vector<int>> res(n, vector<int>(n, 0));
int t = 0;
int b = n - 1;
int l = 0;
int r = n - 1;
int num = 1;
while(num <= n*n)
{
for(int i = l; i <= r; i++) res[t][i] = num++;
if(t++ > b) break;
//上到下
for(int i = t; i <= b; i++) res[i][r] = num++;
if(r-- < l) break;
//右到左
for(int i = r; i >= l; i--) res[b][i] = num++;
if(b-- < t) break;
//下到上
for(int i = b; i >= t; i--) res[i][l] = num++;
if(l++ > r) break;
}
return res;
}
};