[88]. 合并两个有序数组(C语言)
发布日期:2021-05-07 00:27:28 浏览次数:7 分类:技术文章

本文共 747 字,大约阅读时间需要 2 分钟。

给你两个有序整数数组 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

输出:[1,2,2,3,5,6]

提示:

-10^9 <= nums1[i], nums2[i] <= 10^9

nums1.length == m + n
nums2.length == n

来源:力扣(LeetCode)

链接:

解题思路

思路:先合并后排序

  • 首先合并两个数组,将数组2的元素全部追加到数组1有效数字的后面。
    nums1=123000->nums1=123256
  • 对合并后的数组采取冒泡排序的方法排成有序数组
    nums1=123256->122356

代码:

void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n){       //1.将nums2存入到nums1中    for(int i=m,j=0;i
nums1[j+1]) { int temp=nums1[j]; nums1[j]=nums1[j+1]; nums1[j+1]=temp; } } }}

在这里插入图片描述

上一篇:[203]. 移除链表元素(C语言)
下一篇:C语言初阶——指针

发表评论

最新留言

不错!
[***.144.177.141]2025年03月13日 03时42分31秒