自己做时没思路,看了题解,,,,,,恍然大悟,竟然是个O(n^2)的复杂度。
摘自题解:
#include<cstdio>
#include<iostream>
#include<cstring>
#include<iostream>
using namespace std;
int main()
{
// freopen("in.txt","r",stdin);
int n,num[1000+10];
scanf("%d",&n);
for(int i=0; i<n; i++)
scanf("%d",&num[i]);
for(int i=0; i+1<n; i++)
{
int x1,x2,x3,x4;
if(num[i]<num[i+1])
x1=num[i],x2=num[i+1];
else x1=num[i+1],x2=num[i];
for(int j=i+2; j+1<n; j++)
{
if(num[j]<num[j+1])
x3=num[j],x4=num[j+1];
else x3=num[j+1],x4=num[j];
if((x3<x1&&x1<x4&&x4<x2)||(x3<x2&&x2<x4&&x1<x3))
{
puts("yes");
return 0;
}
}
}
puts("no");
return 0;
}