977.有序数组的平方
class Solution {
public:
vector<int> sortedSquares(vector<int>& nums) {
vector<int> res(nums.size(), 0);
int left = 0;
int right = nums.size() - 1;
int index = nums.size() - 1;
while(left <= right){
if((nums[left]*nums[left]) <= (nums[right]*nums[right])){
res[index] = (nums[right]*nums[right]);
index--;
right--;
}else{
res[index] = (nums[left]*nums[left]);
index--;
left++;
}
}
return res;
}
};
209.长度最小的子数组
class Solution {
public:
int minSubArrayLen(int target, vector<int>& nums) {
int left = 0;
int right = 0;
int res = nums.size() + 1;
int sum = nums[0];
while(right < nums.size()){
if(sum >= target){
if((right - left + 1) < res){
res = right - left + 1;
}
sum -= nums[left];
left++;
}else{
right++;
if(right < nums.size()){
sum += nums[right];
}
}
}
if(res == nums.size() + 1){
return 0;
}
return res;
}
};
59.螺旋矩阵
class Solution {
public:
vector<vector<int>> generateMatrix(int n) {
vector<vector<int>> res(n, vector<int>(n, 0));
int index = 1;
int tmp = 0;
while (n - tmp >= 2){
for(int i = 0; i < n - tmp - 1; i++){
res[tmp/2][i + tmp/2] = index;
index++;
}
for(int i = 0; i < n - tmp - 1; i++){
res[i + tmp/2][n - tmp/2 - 1] = index;
index++;
}
for(int i = 0; i < n - tmp - 1; i++){
res[n - tmp/2 - 1][n - tmp/2 - i - 1] = index;
index++;
}
for(int i = 0; i < n - tmp - 1; i++){
res[n - tmp/2 - i - 1][tmp/2] = index;
index++;
}
tmp += 2;
}
if (n - tmp == 1){
res[tmp/2][tmp/2] = index;
}
return res;
}
};