class Solution {
public:
int minSubArrayLen(int target, vector<int>& nums) {
int slow=0,fast=0,size=nums.size();
int sum=0;
queue<int>qe;
int res=INT_MAX;
while(fast<size)
{
qe.push(nums[fast]);
sum+=nums[fast++];
while(sum>=target)
{
if(res>qe.size())
{
res=qe.size();
}
sum-=qe.front();
qe.pop();
}
}
return res==INT_MAX?0:res;
}
};
class Solution {
public:
vector<vector<int>> generateMatrix(int n) {
int l=0;
int r=n-1;
int t=0;
int b=n-1;
int k=1;
vector<vector<int>> vec(n,vector<int>(n));
while(k<=n*n)
{
for(int i=l;i<=r;i++,k++)
vec[t][i]=k;
t++;
for(int i=t;i<=b;i++,k++)
vec[i][r]=k;
r--;
for(int i=r;i>=l;i--,k++)
vec[b][i]=k;
b--;
for(int i=b;i>=t;i--,k++)
vec[i][l]=k;
l++;
}
return vec;
}
};
#include<iostream>
using namespace std;
const int N = 1e5 + 10;
int s[N];
int n, l, r;
void solve()
{
for (int i = 0; i < n; i++)
{
int x;
cin >> x;
s[i] = s[i - 1] + x;
}
while (cin >> l >> r)
{
cout << s[r] - s[l - 1] << endl;
}
}
int main()
{
cin >> n;
solve();
return 0;
}
44. 开发商购买土地(第五期模拟笔试) (kamacoder.com)
#include<iostream>
#include<vector>
#include <climits>
using namespace std;
int main()
{
int n,m;
int sum=0;
int res=INT_MAX;
cin>>n>>m;
vector<vector<int>>vec(n,vector<int>(m,0));
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
cin>>vec[i][j];
sum+=vec[i][j];
}
}
vector<int>row(n,0);
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
row[i]+=vec[i][j];
}
}
vector<int>col(m,0);
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
col[i]+=vec[j][i];
}
}
int temp=0;
for(int i=0;i<n;i++)
{
temp+=row[i];
res=min(res,abs(sum-temp-temp));
}
temp=0;
for(int j=0;j<m;j++)
{
temp+=col[j];
res=min(res,abs(sum-temp-temp));
}
cout<<res<<endl;
return 0;
}