题解 | #有序序列判断#

有序序列判断

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次相等时即为有序

全部评论

相关推荐

牛客5655:其他公司的面试(事)吗
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务