题解 | #有序序列判断#

有序序列判断

http://www.nowcoder.com/practice/22e87f8a8d764a6582710f38d1b40c6e

通过计数来判断是否有序

针对此题我的想法是:将前一个数和后一个数做差,根据大于小于的情况进行计数,如果计数的情况为n-1,那么就说明此序列两两相减的趋势相同,所以可对其进行是否有序的判断

int main()
{
    int i,arr[100],n,cnt1=0,cnt2=0;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d",&arr[i]);
    }
    for(i=0;i<n-1;i++)
    {
       if(arr[i]-arr[i+1]>=0)
           cnt1++;//降序计数
       else if(arr[i]-arr[i+1]<=0)
           cnt2++;//升序计数
    }
    if(cnt1==n-1||cnt2==n-1)//一共n个数,两两相减的到n-1个结果
        printf("sorted");
    else
        printf("unsorted");
}
全部评论
你这个有点小问题,for循环里边让if和else if都有了arr[i]-arr[i+1]==0的判断符合条件时只会进入if里边,比如你输入任意一组升序数,只要任意位置存在两个相等的数,判断结果都会是无序. 应该把if和else里=都去掉,然后加一个else当arr[i]-arr[i+1]==0时cnt1,cnt2都加上个1
9 回复 分享
发布于 2022-08-10 16:55
有bug,大神,当遇到 1 1 1 1 2的时候,不满足呀
点赞 回复 分享
发布于 2024-12-07 22:19 北京
知道什么是我若不修行 见你如井中蛙观天上月 我若修行 见你如一粒浮游见青天
点赞 回复 分享
发布于 2024-10-14 19:07 河南
这个方法在1 2 3 3 5是unsorted,但是题意是sorted,所以不对
点赞 回复 分享
发布于 2023-11-10 08:09 吉林
我不理解i=0;i
点赞 回复 分享
发布于 2023-02-05 09:42 海南
牛牛牛
点赞 回复 分享
发布于 2022-12-09 21:30 山西
看完我人傻了,逻辑真的6啊
点赞 回复 分享
发布于 2022-10-30 23:52 河南
66666666666
点赞 回复 分享
发布于 2022-10-06 15:12 浙江
妙蛙种子直呼内行!!!
点赞 回复 分享
发布于 2022-08-06 18:22
我去,NB啊,这个逻辑
点赞 回复 分享
发布于 2022-06-05 16:54
这个方法挺好的
点赞 回复 分享
发布于 2022-03-13 10:32

相关推荐

07-07 11:33
江南大学 Java
已经在暑假实习了&nbsp;,没有明确说有hc,纠结实习到八月份会不会有点影响秋招毕竟感觉今年好多提前批
程序员小白条:92的话准备提前批,其他没必要,没面试机会的,而且你要准备充分,尤其八股和算法题
点赞 评论 收藏
分享
06-26 17:24
已编辑
宁波大学 golang
迷失西雅图:别给,纯kpi,别问我为什么知道
点赞 评论 收藏
分享
评论
58
6
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务