文章
5
粉丝
174
获赞
2
访问
40.0k
整体思路:
先把所有因子求出来,放入一个数组a中
然后遍历数组a ,begin和len分别表示此时这个正在遍历的连续子串的起始位置和长度 将结果打包 放入map中
每一对 begin和len 都放入map中
最后遍历map找最大的len 从而得到begin
再遍历a数组输出即可
#include<bits/stdc++.h>
#include<map>
int yinzi(int n,int arr[]);
using namespace std;
int main()
{
int n;
scanf("%d",&n);
int a[5000];
int count=yinzi(n,a);
map<int,int> m;
int i,j=0;
while(j<count)
{
i=j;
int begin=j;
int len=1;
while(a[i]==a[i+1]-1)
{
len++;
i++;
}
m[begin]=len;
j=i+1;
}
int max_begin=0;
int max_len=1;
for(map<int,int>::iterator it=m.begin()...
登录后发布评论
暂无评论,来抢沙发