zoukankan      html  css  js  c++  java
  • Java for LeetCode 088 Merge Sorted Array

    Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array.

    解题思路一:

    使用一个nums1Copy把nums1的前m个元素拷贝出来,然后把nums1Copy和nums2放进nums1中,JAVA实现如下:

        public void merge(int[] nums1, int m, int[] nums2, int n) {
            int[] nums1Copy=new int[m];
        	for(int i=0;i<m;i++)
        		nums1Copy[i]=nums1[i];
        	int i=0,j=0,k=0;
        	while(i<m&&j<n){
        		if(nums1Copy[i]<nums2[j])
        			nums1[k++]=nums1Copy[i++];
        		else nums1[k++]=nums2[j++];
        	}
        	if(i>=m-1)
        		while(j<n)
        			nums1[k++]=nums2[j++];
        	if(j>=n-1)
        		while(i<m)
        			nums1[k++]=nums1Copy[i++];
        }
    

     解题思路二:

    思路一会有一定的空间复杂度,可以直接把nums1中的前m个元素往右平移n个单位,然后进行合并,JAVA实现如下:

        public void merge(int[] nums1, int m, int[] nums2, int n) {
        	for(int i=m+n-1;i>=n;i--)
        		nums1[i]=nums1[i-n];
        	int i=n,j=0,k=0;
        	while(i<m+n&&j<n){
        		if(nums1[i]<nums2[j])
        			nums1[k++]=nums1[i++];
        		else nums1[k++]=nums2[j++];
        	}
        	if(i>=m+n)
        		while(j<n)
        			nums1[k++]=nums2[j++];
        }
    
  • 相关阅读:
    费马小定理
    CF 1365D Solve The Maze
    CF 1367D Task On The Board
    CF 1368B Codeforces Subsequences
    CF 1368C Even Picture
    mybatis框架
    Ajax
    jdbc
    jQuery
    JSP
  • 原文地址:https://www.cnblogs.com/tonyluis/p/4516036.html
Copyright © 2011-2022 走看看