自己的代码A了23分,测试点5没过去。
最终参考了柳神的代码:
#include <iostream>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;
int main(){
int n,a[100001]={0},len=0,temp;
long p;
cin>>n>>p;
for(int i=0;i<n;i++){
cin>>a[i];
}
sort(a,a+n);
for(int i=0;i<n;i++){
for(int j=i+len;j<n;j++){
if(a[i]*p>=a[j]){
temp=j-i+1;
if(temp>len)
len=temp;
}
else
break;
}
}
cout<<len<<endl;
return 0;
}
这篇博客主要讨论了一段C++代码,该代码用于解决在一个整数数组中找到乘积大于或等于特定值的最长连续子数组的问题。作者分享了自己最初的实现(代码A,得分23分),并指出在测试点5上未能通过。随后,作者介绍了参考柳神代码后的优化解决方案,该方案使用了排序和双指针技巧来提高效率。博客内容涵盖了数组处理、排序算法和条件判断等编程概念。
2万+

被折叠的 条评论
为什么被折叠?



