前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >日拱一卒,月进一步(5)

日拱一卒,月进一步(5)

作者头像
用户11039545
发布2024-05-04 08:34:54
520
发布2024-05-04 08:34:54
举报
文章被收录于专栏:c语言c语言

88. 合并两个有序数组 - 力扣(LeetCode)

令我十分意外地是,这题竟然也曾经写过,但我却没有思路,罪该万死。

代码语言:javascript
复制
void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n) {
    //nums1Size:nums1数组的长度
    //nums2Size:nums2数组的长度
    int l1=m-1;
    int l2=n-1;
    int l3=m+n-1;//合并后盾num1索引
    while(l1>=0&&l2>= 0)//只要有一个条件为假,就跳出循环
    {
        if(nums1[l1]<nums2[l2])
        {
            nums1[l3--]=nums2[l2--];
        }
        else
        {
            nums1[l3--]=nums1[l1--];
        }

    }
    //出了循环有两种情况:l1大于等于0或者l2大于等于0,不存在l1和l2同时大于等于0的情况
    //只需要处理一种情况,那就是l2大于等于0,说明l2中的数据还没有完全放入num1中
    while(l2>=0)
    {
        nums1[l3--]=nums2[l2--];
    }
//此时nums1中包含了nums2中的数据,num1为升序数组
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-05-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档