链接:
https://leetcode.cn/problems/arithmetic-subarrays/
解:
baoli!
实际代码:
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
vector<bool> solve(vector<int>& nums, vector<int>& l, vector<int>& r)
{
int lg_l=l.size(),lg_nums=nums.size();
vector<bool>ans;
for(int i=0;i<lg_l;i++)
{
vector<int>temp;
if(l[i]==r[i])
{
ans.push_back(true);
continue;
}
for(int j=l[i];j<=r[i];j++)
{
temp.push_back(nums[j]);
}
sort(temp.begin(),temp.end());
int d=temp[1]-temp[0];
bool now=true;
for(int i=1;i<temp.size();i++)
{
if(temp[i]-temp[i-1]!=d)
{
now=false;break;
}
}
ans.push_back(now);
}
return ans;
}
int main()
{
int n,m;cin>>n>>m;
vector<int>nums,l,r;
for(int i=1;i<=n;i++)
{
int temp;cin>>temp;
nums.push_back(temp);
}
for(int i=1;i<=m;i++)
{
int temp;cin>>temp;
l.push_back(temp);
}
for(int i=1;i<=m;i++)
{
int temp;cin>>temp;
r.push_back(temp);
}
vector<bool>ans=solve(nums,l,r);
for(auto i:ans) cout<<i<<endl;
}
限制:
n == nums.length
m == l.length
m == r.length
2 <= n <= 500
1 <= m <= 500
0 <= l[i] < r[i] < n
-105 <= nums[i] <= 105