【力扣(LeetCode)】【C/C++】【88.合并两个有序数组】

【leetcode系列】88.合并两个有序数组 题目描述给定两个有序整数数组nums1 和 nums2,将 nums2 合并到nums1中,使得num1 成为一个有序数组。 说明: 初始化nums1 和 ... 阅读详情

学习时间:

        2023年1月17日


题目描述:


 题解分享:

// 作     者 : 繁 华 倾 夏
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

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

// nums1:数组 nums1Size:数组1最大长度 m:数组1合法元素个数 nums2:数组 nums2Size:数组2最大长度 n:数组2合法元素个数
void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n) {
    int end1 = m - 1, end2 = n - 1;             // 采用从后比较方法
    int end = m + n - 1;

    while (end1 >= 0 && end2 >= 0) {           // 当end1或者end2元素移位完成后while循环结束
        if (nums1[end1] > nums2[end2]) {       // 判断需要移位nums1还是nums2数组的元素
            nums1[end--] = nums1[end1--];
        }
        else {
            nums1[end--] = nums2[end2--];
        }
    }
    while (end2 >= 0) {                         // 如果end2大于等于0,则需要将nums2剩余的元素移位到nums1中
        nums1[end--] = nums2[end2--];
    }
}

//测试用例
//输入 nums1 = [1, 2, 3, 0, 0, 0], m = 3, nums2 = [2, 5, 6], n = 3
//输出 [1, 2, 2, 3, 5, 6]
int main() {
    int nums1[] = { 1, 2, 3, 0, 0, 0 };
    int nums2[] = { 2, 5, 6 };
    int nums1Size = sizeof(nums1) / sizeof(nums1[0]);   // 统计数组长度
    int nums2Size = sizeof(nums2) / sizeof(nums2[0]);
    int m = 0;
    while (nums1[m]) {                                  // 统计sums1中元素的个数
        m++;
    }

    merge(nums1, nums1Size, m, nums2, nums2Size, nums2Size);

    for (int i = 0; i < nums1Size; i++) {
        printf("%d ", nums1[i]);
    }
    return 0;
}

【繁华倾夏】【每日力扣题解分享】【Day3】


诊断数据库ODX标准协议ISO22901定义组成部分 综上所述,简略描述了ODX数据库中UML/XML/Text/Check rules具体功能以及详细内容。 阅读详情

相关推荐

小红书私信接口与Hook技术实战:微信跳转卡片的合规与破解之道

本文深入探讨了小红书私信接口与Hook技术的实战应用,重点解析了微信跳转卡片的合规使用与破解方法。通过官方私信接口的合规玩法与Xposed框架的Hook技术对比,为开发者提供了技术选型指南和实战建议,帮助实现高效的用户跳转与转化。

weixin_30399821的博客 731

【LeetCode算法】第88题:合并两个有序数组

合并两个有序数组,可以使用双指针法从后往前遍历,并将元素拷贝至目标位置。

致力于Linux的博客 977

在Keil下完成一个汇编程序的编写

在学习STM32的路上开始是学的C语言尚未进行对汇编进行学习,因此抽出时间来学习一下在keil下的汇编语言。

Liu-FE的博客 1万+

LeetCode 88. 合并两个有序数组(C++)

题目: 给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。 说明: 初始化 nums1 和 nums2 的元素数量分别为 m 和 n。 你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。 示例: 输入: nums1 = [1,2,3,0,0,0], m = 3 n...

my_clear_mind的博客 1036

Rockchip硬件编码实战:5分钟搞定RK3588上的H.265视频压缩(附FFmpeg集成指南)

本文深入解析了在Rockchip RK3588平台上利用硬件编码器实现高效H.265视频压缩的完整实战流程。文章详细介绍了MPP库的基础使用、FFmpeg集成方法,并重点分享了零拷贝、多实例编码等关键性能优化技巧,帮助开发者充分发挥RK3588的硬件编码能力,实现从YUV原始数据到高质量H.265码流的高效转换。

h6i7j8的博客 1095

基于ESP32的无线DMX节点设计:从Art-Net/sACN到DMX512的协议转换与实现

在舞台灯光和建筑照明控制系统中,DMX512是行业标准的数字调光协议,用于控制灯具的亮度、颜色和效果。其原理是通过RS-485差分信号串行传输512个通道的数据,每个通道对应一个控制值。然而,传统有线DMX布线复杂、成本高,在移动装置、历史建筑或临时活动中部署困难。为解决此问题,业界发展出了基于以太网的灯光控制协议,如Art-Net和sACN(E1.31),它们将DMX数据封装在UDP包中,通过网络传输。这项技术的核心价值在于实现了灯光控制的网络化与无线化,大幅提升了系统的灵活性和部署效率。其典型应用场景包

weixin_30175731的博客 227

C++题目之合并两个有序数组(力扣88)

给定两个有序整数数组 nums1 和 nums2,合并nums1和nums2为有序数组 输入: nums1 = [1,2,3], m = 3 nums2 = [2,5,6], n = 3 输出: [1,2,2,3,5,6] **解题思路:**先求出两个数组的大小,开辟一个新数组来保存合并之后的数据,给两个指针指向两个数组中最后一个元素,判断如果第一个数组最后一个元素小于第二个数组最后一...

ZBQ__的博客 886

OpenOCD入门到精通:第 0 章 教程导读

摘要:本教程是OpenOCD嵌入式调试工具的完整指南,适合从新手到资深工程师的学习需求。内容涵盖基础配置、调试技巧、Flash编程、TCL脚本自动化、源码解析和二次开发,共8大部分30章。教程提供5种学习路线,可根据角色和目标灵活选择,配套资源包含示例代码和配置文件。通过系统学习,读者将掌握OpenOCD从使用到扩展的全套技能,成为嵌入式调试领域的专家。

从事嵌入式linux android驱动开发,拥有全栈能力 1940

LeetCode第 88 题:合并两个有序数组(C++)

88. 合并两个有序数组 - 力扣(LeetCode) 就是归并排序的merge嘛,借助一个辅助数组就可以了。 class Solution { public: void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) { if(n == 0) return; vector<int> tmp(m+n); int i = 0, j

zj 363

A2A 协议详解:Agent Card 的设计与实现

Agent Card 是 Agent2Agent (A2A) 协议中实现智能体发现与互操作性的核心组件。本文将深入剖析 Agent Card 的设计理念、关键字段及其在智能体生态系统中的作用。我们将通过详细的 JSON Schema 解析和 Python SDK 示例,帮助您理解如何精确地定义和发布智能体能力,为构建可发现、可协作的 AI 智能体奠定基础。当您使用a2a.Agent类初始化一个智能体时,SDK 会根据您提供的参数(nameversion等)自动构建内部的 Agent Card 表示。

加入“Super Entity”,与全能开发团队共探AI智能体与数字人项目,开启前沿技术之旅。 1476

数学建模之0—1规划(Python)

目录 1、概述 (1)知识框架 (2)线性整数规划模型 (3)分支定界法 2、案例 (1)案例1​ (2)案例2 3、遗传算法—sko-GA包实现 (1)代码 (2)结果 4、PuLp实现 (1)代码 (2)结果 5、致谢 1、概述 (1)知识框架 (2)线性整数规划模型 (3)分支定界法 2、案例 (1)案例1 (2)案例2 3、遗传算法—sko-GA包...

weixin_46039719的博客 4109

力扣之合并两个有序数组

合并两个有序数组 给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。 说明: 初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。 你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。 示例 : 输入: nums1 = [1,2,3,0,0,0], m = 3 nums2 = [2,5,6], n = 3 输

江理彭于晏的博客 503

YOLOv11改进 | 损失函数改进篇 | 2024最新高质量的目标检测边界框回归损失Unified-IoU、FocalUIoU、FocalInvUIoU(设置动态epoch参数)

本文给大家带来的改进机制是最近新提出的高质量的目标检测边界框回归损失,其通过动态调整模型对不同质量预测框的关注,优化目标检测中的边界框回归精度。UIoU引入了FocalBox方法,通过缩放预测框与真实框分配权重,并采用了退火策略(引入动态参数epoch),逐渐将模型的注意力从低质量预测框转移到高质量预测框,平衡了训练速度与检测精度。其还有一定的解决样本不平衡问题,同时该损失函数可以和现有的任何边界框回归损失函数进行结合,例如ShapeIoU和其结合可以形成二次创新,它是一种类似于之前的Inner的机制.

Snu77的博客 4584

【LeetCode】(力扣) c/c++刷题-88. 合并两个有序数组

力扣 c刷题

m0_65204379的博客 122

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

LeetCode[70/83/88]爬楼梯、 删除排序链表中的重复元素、合并两个有序数组 C/C++——第六天

LeetCode[70/83/88]爬楼梯、 删除排序链表中的重复元素、合并两个有序数组

Lailalalala的博客 353

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Leetcode88. 合并两个有序数组

Leetcode88. 合并两个有序数组

ProgramNovice的博客 197

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

【数据结构与算法】LeetCode27 && LeetCode88顺序表练习:1.移除元素 2.合并两个有序数组

文章摘要 本文通过两道经典数组算法题,解析数据结构与算法的核心思想。移除元素采用数组分块策略,通过双指针交换元素实现高效去重;合并有序数组借助辅助数组和双指针遍历,完成有序数组合并。作者强调算法学习需要反复拆解原理与代码实践,在夯实基础的同时培养逻辑思维。文末以励志金句收尾,鼓励读者保持编程热情,相信持续练习终将收获成长。 (字数:149字)

小龙报的博客 1186

88.合并两个有序数组

力扣88.合并两个有序数组 的讲解与实现

shylyly_的博客 384

【LeetCode刷题日志】88.合并两个有序数组

这一方法将两个数组看作队列,每次从两个数组头部取出比较小的数字放到结果中。注意,因为 m = 0 ,所以 nums1 中没有元素。nums1 中仅存的 0 仅仅是为了确保合并结果可以顺利存放到 nums1 中。的后半部分是空的,可以直接覆盖而不会影响结果。,5,6] ,其中斜体加粗标注的为 nums1 中的元素。那么如何直接避免覆盖。最终,合并后数组不应由函数返回,而是存储在数组。需要合并 [1,2,3] 和 [2,5,6]。严格来说,在此遍历过程中的任意一个时刻,需要合并的数组是 [] 和 [1]。

m0_68662723的博客 1万+

【C语言】88.合并两个有序数组 【LeetCode】

【C语言】88.合并两个有序数组 【LeetCode】 1400字详解此题,大家快来看看呀! 新开空间 把小的放到新数组里 把小的数组里的数放到长数组里 从后往前放 谁大就谁里面的指针减减 先判断数组大小 放值 假设1>2 num1结束了就把2里剩下的都放1里 2结束了就不动1 ...

qq_60021974的博客 1735

leetcode88. 合并两个有序数组,倒着做

leetcode88. 合并两个有序数组,倒着做

热爱C++和golang的学生 1121

力扣(Leetcode)第88题:合并两个有序数组(C语言版本)

输入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3。合并结果是 [1,2,2,3,5,6] ,其中斜体加粗标注的为 nums1 中的元素。输入:nums1 = [0], m = 0, nums2 = [1], n = 1。输入:nums1 = [1], m = 1, nums2 = [], n = 0。解释:需要合并 [1,2,3] 和 [2,5,6]。解释:需要合并的数组是 [] 和 [1]。输出:[1,2,2,3,5,6]

qq_39855356的博客 794

力扣leetcode题库练习(C++)—4. 寻找两个有序数组的中位数

力扣leetcode题库练习(C++)—4. 寻找两个有序数组的中位数题目描述示例分析代码及注释如下结果如下注 题目描述 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。 你可以假设 nums1 和 nums2 不会同时为空。 示例 示例 1: nums1 = [1, 3] nums2 =...

weixin_45682431的博客 475

【LeetCode刷题指南】--数组串联,合并两个有序数组,删除有序数组中的重复项

本文分享了三个LeetCode数组题目的解题思路和代码实现:1.数组串联(1929题),通过malloc开辟新数组空间并复制元素;2.合并有序数组(88题),采用双指针倒序原地合并的方法;3.删除有序数组重复项(26题),使用双指针原地修改数组。每道题都给出了复杂度分析(均为O(n)时间复杂度)和详细的解题过程图示,并强调了力扣作为刷题平台的优势。文章延续了作者一贯的技术分享风格,包含完整代码示例和解题思路,适合算法学习者参考。

会当凌绝顶,一览众山小 1348

C++ : 力扣_Top(88-122)

C++ : 力扣_Top(88-122) 文章目录C++ : 力扣_Top(88-122)88、合并两个有序数组(简单)91、解码方法(中等)101、对称二叉树(简单)102、二叉树的层序遍历(中等)103、二叉树的锯齿形层次遍历(中等)104、二叉树的最大深度(简单)105、从前序与中序遍历序列构造二叉树(中等)108、将有序数组转换为二叉搜索树(简单)116、填充每个节点的下一个右侧节点指针(...

麻城明歌的博客 730

Leetcode(力扣)题解--C++实现(一)

Leetcode(力扣)题解–C++实现(一) 文章目录Leetcode(力扣)题解--C++实现(一)题目 1 [平方数之和](https://leetcode-cn.com/problems/sum-of-square-numbers/)题目 2 [两数之和 II - 输入有序数组](https://leetcode-cn.com/problems/two-sum-ii-input-array-is-sorted/)题目 3 [反转字符串中的元音字母](https://leetcode-cn.com/p

qq_43419412的博客 2707
上一篇: 【力扣(LeetCode)】【C/C++】【26.删除有序数组中的重复项】
下一篇: 【力扣(LeetCode)】【C/C++】【1.两数之和】
繁华倾夏
博客等级 码龄4年 4粉丝 108原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值