题目:
现在给你nn个整数a1,a2,…,ana1,a2,…,an,每个数各不相同,蜗蜗说这些数字已经被他整理好了顺序(从小到大或者从大到小),现在要你验证这个数组是否已经有序。
- 如果不符合顺序,请输出0;
- 如果是从小到大排列,输出1;
- 如果是从大到小排列,输出2;
-
代码:
-
#include<bits/stdc++.h> using namespace std; int main(){ int a[1001],n,ma=0; cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; } for(int i=2;i<=n-1;i++){ if(a[i+1]>a[i] && a[i]>a[i-1]){ ma=1; } else{ if(a[i-1]>a[i] && a[i]>a[i+1]){ ma=2; } else{ ma=0; break; } } } cout<<ma; }
思路:
- 因为有三种结果就是1,2,0这三个;每一次都判断它是否是符合要求,1,2都不服和就是0了,是零的话就得必须马上退出,不然在下一个循环时就马上又变回来的。