Leetcode088合并两个有序数组(归并排序部分)

地址

https://leetcode-cn.com/problems/merge-sorted-array/

描述

在这里插入图片描述

思想

在这里插入图片描述

代码

class Solution {
    
    
public:
    void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
    
    
        //本题为了防止nums1中数字被nums2中数字覆盖,从后往前遍历
        int k=n+m-1;//存数指针
        int i=m-1;//指向nums1
        int j=n-1;//...nums2
        while(i>=0&&j>=0){
    
    
            if(nums1[i]<nums2[j]) nums1[k--]=nums2[j--];
            else nums1[k--]=nums1[i--];
        }
        //扫尾,只扫nums2,假如j指针遍历完,i指针还没遍历完,说明剩下的数都在正确位置上
        while(j>=0) nums1[k--]=nums2[j--];
    }
};

猜你喜欢

转载自blog.csdn.net/qq_52934831/article/details/121750802
今日推荐