LeetCode título cepillo irregular --merge Ordenado matriz

Combinar Ordenado matriz

Dados dos matrices de enteros ordenados nums1 y nums2 , de combinación de nums2 en nums1 como una matriz ordenada.

Nota:
Es posible asumir que nums1 tiene suficiente espacio (tamaño que es mayor o igual a m + n ) para mantener los elementos adicionales de nums2 . El número de elementos inicializa en nums1 y nums2 son m y n respectivamente.

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

Debido a que el tema dijo que deberíamos combinar las dos matrices para nums1, pero no podemos fusionar elementos de la matriz en la parte frontal de nums1, ya que esto causará ninguna comparación de los elementos no se encuentra, por así comparar desde la parte posterior.

Publicados 173 artículos originales · ganado elogios 110 · Vistas de 100.000 +

Supongo que te gusta

Origin blog.csdn.net/qq_35564813/article/details/104737049
Recomendado
Clasificación