
急这里为啥错误,类型不对应,我看别人这样写可以,请问是为什么报错,该怎么修改啊
find()函数和end()函数的使用需要修改下,经过修改可以通过编译了,代码没有检查逻辑问题,所以测试数据仅为演示之用。
修改如下:
参考链接:
https://www.jianshu.com/p/17ffdb12b406
https://blog.csdn.net/qq_44378854/article/details/115420617
https://blog.csdn.net/haoTaoshu/article/details/95631339
#include <bits/stdc++.h>
#include <algorithm>
#define LEN 1000
using namespace std;
int main(void){
int n,m,max=0;
scanf("%d%d",&n,&m);
int t[LEN]; // 为了通过编译(end()函数) ,这里使用常量来作为数组的长度
for(int i=0;i<n;i++)
scanf("%d",&t[i]);
sort(t,t+n);
for(int i=m,j=0;i>=0;i-=2,j--){
long long num=0;
for(int k=j;k<=i;k++){
// https://www.jianshu.com/p/17ffdb12b406
// https://blog.csdn.net/qq_44378854/article/details/115420617
// 这里find()函数和end()函数的调用修改下
int * it =find(t+k,t+i,k);
// https://blog.csdn.net/haoTaoshu/article/details/95631339
if(it!=end(t)){
num++;
}
if(num>max) max=num;
}
}
printf("%lld",max);
return 0;
}
