参考代码:
class Solution {
public void merge(int[] nums1, int m, int[] nums2, int n) {
int p = m–+n—1;
while(m>=0&&n>=0){
nums1[p–]=nums1[m]>nums2[n]?nums1[m–]:nums2[n–];
}
while(n>=0){
nums1[p–]=nums2[n–];
}
}
}
因为nums1的长度是m+n所以从右边开始填补。
如果nums2的数大于nums1的数,把nums2的数赋值给nums1的最后一个数,否则将nums1的数赋值给最后一个数。以此类推,依次往前赋值。可调试感受一下过程
力扣第88题“合并两个有序数组”解题思路
最新推荐文章于 2023-09-09 17:08:44 发布