2021.09.27 - 092.合并两个有序数组

1. 题目

在这里插入图片描述

2. 思路

(1) 双指针法

  • 利用指针index指向当前待插入的位置,指针m和n交替遍历nums1和nums2,倒序插入元素即可。

3. 代码

public class Test {
    
    
    public static void main(String[] args) {
    
    
    }
}

class Solution {
    
    
    public void merge(int[] nums1, int m, int[] nums2, int n) {
    
    
        int index = m + n - 1;
        m = m - 1;
        n = n - 1;
        while (m >= 0 && n >= 0) {
    
    
            if (nums1[m] > nums2[n]) {
    
    
                nums1[index--] = nums1[m--];
            } else {
    
    
                nums1[index--] = nums2[n--];
            }
        }
        if (m < 0) {
    
    
            while (n >= 0) {
    
    
                nums1[index--] = nums2[n--];
            }
        }
        if (n < 0) {
    
    
            while (m >= 0) {
    
    
                nums1[index--] = nums1[m--];
            }
        }
    }
}

猜你喜欢

转载自blog.csdn.net/qq_44021223/article/details/120516469