问题
给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。
说明:
初始化 nums1 和 nums2 的元素数量分别为 m 和 n。
你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。
示例:
1 | 输入: |
解决方案
思路:申请一个大小是两个数组的临时空间用了存放排序后的元素,先对两个数组中的元素进行判断,小的放进临时数组中,直到一个数组放完后,把另外一个数组中的元素全部拷贝进去,最后将临时数组中的元素拷贝到原数组中。
以下是代码:
1 | void merge(int* nums1, int m, int* nums2, int n) |
看了上面的代码,发现又长又繁琐,我们对其简化后的代码如下:
1 | void Merge(int *nums1,int m,int *nums2,int n) |