题解 | #有序序列判断#
有序序列判断
https://www.nowcoder.com/practice/22e87f8a8d764a6582710f38d1b40c6e
#include <iostream> using namespace std; int main() { int a; while (cin >> a) { // 注意 while 处理多个 case int b[50], cnt1=0, cnt2=0; for(int i=0;i<a;i++) { cin>>b[i]; } for(int i=0;i<(a-1);i++) { if(b[i]<=b[i+1]) { cnt1++; } if(b[i]>=b[i+1]) { cnt2++; } } if((cnt1==(a-1))||cnt2==(a-1)) { cout<<"sorted"<<endl; } else { cout<<"unsorted"<<endl; } } } // 64 位输出请用 printf("%lld")
#include <iostream> using namespace std; int main() { int a; while (cin >> a) { // 注意 while 处理多个 case int b[50]; bool flag1=false, flag2=false; for(int i=0;i<a;i++) { cin>>b[i]; } int i=0; //求的是降序 一直是小于等于 for(i=0;i<(a-1);i++) { if(b[i]>b[i+1]) { break; } } if(i==a-1) { flag1=true; } //求的是升级序 一直是大于等于 for(i=0;i<(a-1);i++) { if(b[i]<b[i+1]) { break; } } if(i==a-1) { flag2=true; } if((flag1||flag2)) { cout<<"sorted"<<endl; } else { cout<<"unsorted"<<endl; } } }