#include <iostream>
using namespace std;
const int N=1000005;
int n;
int a[N];
int main()
{
cin>>n;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
int mn=10e9+1,mx=0;
for(int i=0;i<n;i++)
{
if(a[i]>mx)
mx=a[i];
if(a[i]<mn)
mn=a[i];
}
if(a[0]==mx&&a[n-1]==mn)
{
cout<<3<<endl;
}
else if( a[0]==mn)
{
cout<<1<<endl;
}else if( a[n-1]==mx)
cout<<1;
else cout<<2;
return 0;
} 思路:(找规律)
目标是找出所有排序次数的可能性。从题目中分析可以得到。一共有三种输出可能,分别是1 、2、 3。输出1的有两种情况,包括最小值已经在最左边或者是最大值已经在最右边。输出3的有一种情况,就是当最大值在左边,且最小值在最右边。其余的情况都是输出2的情况。因此按照这个模拟就能输出答案。

京公网安备 11010502036488号