给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组.
说明:
初始化 nums1 和 nums2 的元素数量分别为 m 和 n。
你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/merge-sorted-array
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
想法:
因为nums1足够大的空间并且有序,所以可以设游标P1指向nums1的m+n-1位置;
从左往右开始进行nums1和nums2数值大小,移动数值大的到nums1的P1处,然后P1--,同时移动的那个数组下标--;
同时以nums1和nums2的下标同时大于1进行上一句循环;
最后:判断nums2的下标大于-1不,大于则把nums2剩下部分复制过去;
值得注意的是在数组关于++/--的操作;
int n = 1;
aa[3] = {1, 4, 6};
aa[n++] = 7; //n = 2, aa[1]:1-->7; 先赋值再加加
aa[++n] = 7; //n = 2, aa[2]:4-->7; 先加加再赋值;