力扣 88. 合并两个有序数组

简介: 力扣 88. 合并两个有序数组

1.解题思路

另开辟一个大小为m+n的数组再利用双指针判断两个指针的大小,将小值赋给数组上并给该数组的下标加一和该指针加一,其次,要判断两个数组是否已经被拷贝完,如果其中一个已经到头,那么剩下的空间则全部由另外数组拷贝.然后再将此数组拷贝到原数组上.

2.代码实现

void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n)
{
  int* nums=(int *)malloc(sizeof(int)*(n+m));
  int left=0;
  int right=0;
  int data=0;
  while(data<(m+n))
  {  
      if(left==m)
      {
       while(right<n)
       {
           nums[data++]=nums2[right++];
       }
       break;
      }
      if(right==n)
      {
          while(left<m)
          {
          nums[data++]=nums1[left++];
          }
          break;
      }
    if(nums1[left]<=nums2[right])
    {
     nums[data++]=nums1[left++];
    }
    else
    {
      nums[data++]=nums2[right++];
    }
  }
for(int i=0;i<m+n;i++)
{
   nums1[i]=nums[i];
}
}

结尾:今天的分享到此结束,喜欢的朋友如果感觉有帮助可以点赞三连支持,咱们共同进步!

目录
相关文章
|
6天前
|
算法
LeetCode刷题---167. 两数之和 II - 输入有序数组(双指针-对撞指针)
LeetCode刷题---167. 两数之和 II - 输入有序数组(双指针-对撞指针)
|
6天前
|
存储
【合并两个有序数组】LeetCode第88题讲解
【合并两个有序数组】LeetCode第88题讲解
|
6天前
leetcode代码记录(有序数组的平方
leetcode代码记录(有序数组的平方
10 0
|
6天前
leetcode代码记录(有序数组两数之和
leetcode代码记录(有序数组两数之和
14 0
|
6天前
【力扣】80.删除有序数组中的重复项Ⅱ
【力扣】80.删除有序数组中的重复项Ⅱ
|
6天前
|
存储
【力扣经典面试题】80. 删除有序数组中的重复项 II
【力扣经典面试题】80. 删除有序数组中的重复项 II
|
6天前
|
存储
【力扣经典面试题】合并两个有序数组
【力扣经典面试题】合并两个有序数组
|
6天前
|
存储 C语言
【C语言】Leetcode 88.合并两个有序数组
【C语言】Leetcode 88.合并两个有序数组
17 3
|
6天前
LeetCode刷题---80. 删除有序数组中的重复项 II(双指针)
LeetCode刷题---80. 删除有序数组中的重复项 II(双指针)
|
6天前
LeetCode刷题---26. 删除有序数组中的重复项(双指针)
LeetCode刷题---26. 删除有序数组中的重复项(双指针)