zoukankan      html  css  js  c++  java
  • 合并两个有序数组

    合并两个有序数组--LeetCode:https://leetcode-cn.com/problems/merge-sorted-array

    题目虽然归类于简单类型,鉴于题目要求是合并到传入参数nums1,如果不从后向前进行合并的话,则要么浪费空间(一般做法是对num1拷贝一份),要么很复杂!

    特此记录:从后向前思考!

    public class Main {
        public static void main(String[] args) {
            int[] nums1= {1,2,3,0,0,0};
            int   m    = 3;
            int[] nums2= {2,5,6};
            int   n    = 3;
            merge(nums1,m,nums2,n);
            System.out.println(Arrays.toString(nums1));
        }
    
        public static void merge(int[] nums1,int m,int nums2[],int n){
            int nums1Index = m-1;
            int nums2Index = n-1;
    
    
            for (int i=m+n-1;i>-1;i--) {
                if (nums1Index == -1){
                    nums1[i] = nums2[nums2Index--];
                    continue;
                }
                if (nums2Index == -1){
                    nums1[i] = nums1[nums1Index--];
                    continue;
                }
                if (nums1[nums1Index] >= nums2[nums2Index]){
                   nums1[i] =  nums1[nums1Index--];
                }else {
                    nums1[i] =  nums2[nums2Index--];
                }
            }
        }
    
    }
  • 相关阅读:
    Nexus3.0私服搭建
    JavaScript
    Spring基础
    Hibernate注解
    HTML5
    Apache Tomcat
    Java安装(Ubuntu)
    C++ 日期 & 时间
    C++ 引用
    C++ 指针
  • 原文地址:https://www.cnblogs.com/iuyy/p/13503318.html
Copyright © 2011-2022 走看看