题解 | #有序序列判断#
有序序列判断
https://www.nowcoder.com/practice/22e87f8a8d764a6582710f38d1b40c6e
#include <stdio.h> int main() { int n; pass: { while (scanf("%d", &n) != EOF) { // 注意 while 处理多个 case // 64 位输出请用 printf("%lld") to int arr[n]; int i; int count = 0; int count1 = 0; int count2 = 0; for(i = 0; i< n;i++) { scanf("%d", &arr[i]); } for(i = 0; i< n - 1;i++) { if(arr[i] > arr[i + 1]) { count++; } else if(arr[i] < arr[i + 1]) { count2++; } else if (arr[i] == arr[i + 1]) { count1++; } } if(count == n - 1 || count2 == n - 1 ||count1 == n - 1) { printf("sorted"); } else { printf("unsorted"); } } } return 0; } return 0; }
这个思路很有意思
设定一个变量count
依次遍历数组
每次从左至右遇见一个大于或小于或等于x的数时
count++一次
当count与n - 1次相等时即为有序