题解 | #超半的数#

超半的数

https://ac.nowcoder.com/acm/problem/22222

//超半的数
#include<stdio.h>
int main()
{
    int n = 0;
    scanf("%d",&n);
    long long arr[1000];
    for(int i = 0;i<n;i++)
    {
        scanf("%lld ",&arr[i]);
    }
    //思路一:暴力遍历两个for循环,遇到相同则+1
//     for(int i = 0;i<n;i++)
//     {
//         int sum = 0;
//         for(int j = 0;j<n;j++)
//         {
//             if(arr[i]==arr[j])
//                 sum++;
//         }
//         if(sum>(n/2))
//         {printf("%d",arr[i]);
//          break;}
//     }
    //思路2,排序,位于中间的数字,一定是出现最多的那个
    int tmp;
    for(int i = 0;i<n-1;i++)//只需要进行n-1次排序,两两比较
    {
        int k = 1;//定义一个开关变量
        for(int j = 0;j<n-i-1;j++)//每一次排序会把最大或者最小放到最后面
        {
            if(arr[j]>arr[j+1])//把大的数字往后放(改成<即可以把小的置后)
            {
                tmp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = tmp;
                k = 0;
            }
        }
        if(k==1)//说明没有进行排序,跳出
            break;
    }
    //循环之后取中间数即为所求:
    printf("%d",arr[n/2]);
    return 0;
}
//总结:排序方法明显更快

全部评论

相关推荐

点赞 评论 收藏
分享
有担当的灰太狼又在摸鱼:零帧起手查看图片
点赞 评论 收藏
分享
家人们,我现在真的好纠结。我是26届的,目前还没有实习过。我现在的情况是,想参加秋招,但是感觉自己的简历特别空,没有实习经历会不会秋招直接凉凉啊?可我又听说现在很多公司对26届实习生也不太感冒,说什么不确定性大。而且我最近在准备考公,时间上也有点冲突。要是把时间花在实习上,备考时间就少了。但要是不实习,又怕以后就业有问题😫有没有懂行的友友帮我分析分析:26届现在不实习,秋招找工作真的会很难吗?考公和实习该怎么平衡啊?如果现在不实习,考完公再去找实习还来得及吗?真的太焦虑了,希望大家能给我点建议🙏
小破站_程序员YT:我可能和大家的观点不一样。人的精力是有限的,不能既要还要。你又想实习又想考公最后又要秋招上岸,我觉得哪有那么多的选择。你如果想考上岸,那就全力以赴。如果想秋招上岸,就继续投实习,投没了,就继续准备秋招,秋招不行继续春招。别到最后,考公没上岸,觉得是花了时间浪费在找实习上了, 秋招没上岸,觉得是浪费时间准备考公去了。我是认为很难说可以去平衡 不喜勿喷,可以叫我删除
点赞 评论 收藏
分享
评论
6
收藏
分享

创作者周榜

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