209长度最小的子数组
class Solution {
public:int minSubArrayLen(int s, vector<int>& nums) {int result = INT32_MAX;int sum = 0; int i = 0; int subLength = 0; for (int j = 0; j < nums.size(); j++) {sum += nums[j];while (sum >= s) {subLength = (j - i + 1); result = result < subLength ? result : subLength;sum -= nums[i++]; }}return result == INT32_MAX ? 0 : result;}
};
59 螺旋数组
#include <vector>
class Solution{
public:vector<vector<int>> generateMatrix(int n) { vector<vector<int>> res(n,vector<int>(n,0));int startx = 0,starty = 0;int mid = n/2;int loop = n/2;int count = 1;int offset = 1;int i,j;while(loop--){i = startx;j = starty;for (j;j<n-offset;j++){ res[i][j] = count++;}for (i;i<n-offset;i++){res[i][j] = count++;}for (j;j>startx;j--){res[i][j] = count++;}for (i;i>starty;i--){res[i][j] = count++;}startx += 1;starty += 1;offset += 1;}if (n%2==1){res[mid][mid] = count;}return res;
}};
58 区间和
#include <iostream>
#include <vector>using namespace std;
int main(){int n,a,b;cin >> n;vector<int> vec(n);vector<int> p(n);int presum = 0;for(int i=0;i<n;i++){cin >> vec[i];presum += vec[i];p[i] = presum;}while (cin >> a >> b){int sum;if(a==0) sum = p[b];else sum = p[b]-p[a-1];cout << sum << endl;}
}