题解 | #有序序列插入一个整数#

有序序列插入一个整数

https://www.nowcoder.com/practice/444e87f938464906a1649cff236b102b

#include <stdio.h>
int main(void)
{
    int N = 0;  //原数组元素个数
    scanf("%d", &N);

    //有序序列数组
    int arr[N+1];   //足够长的数组
    int i = 0;
    for(i = 0; i < N; i++)
    {
        scanf("%d", &arr[i]);
    }
    //新整数插入
    int new_z = 0;  
    scanf("%d", &new_z);    //插入整数
    int j = 0;
    
    if(arr[N - 1] < new_z)  //插入数字最大时
    {
        arr[N] = new_z;
    }
    else    //插入数字最小或者在中间时
    {
        for(j = 0; j < N + 1; j++)
        {
            if(new_z <= arr[j])
            {
                int k = 0;  //可以插入时,用于从数组末尾往前递推,比如arr[5] = arr[4],然后arr[4] = arr[3]
                for(k = 0; N - k - 1 >= j; k++) //后一个下标已经到插入的下标时停止
                {
                    arr[N - k] = arr[N - k - 1];    
                }
                arr[j] = new_z; //插入
                break;
            }
        }
    }
    //打印
    for(i = 0; i < N + 1; i++)
    {
        printf("%d ", arr[i]);
    }

    return 0;
}

全部评论

相关推荐

如题,字节跳动怎么才能看到自己的面评,找hr说看不到
SoulStar:自己应该看不到,这个是字节比较保密的信息,之前有mentor加我,说他能看到,但是不能给我说,给我说了他可能就要被辞退了
点赞 评论 收藏
分享
10-09 09:39
门头沟学院 C++
HHHHaos:这也太虚了,工资就一半是真的
点赞 评论 收藏
分享
我见java多妩媚:大外包
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务