LeetCode刷題Easy篇合併兩個有序陣列
阿新 • • 發佈:2018-12-05
題目
Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array.
Note:
- The number of elements initialized in nums1 and nums2 are m and n respectively.
- You may assume that nums1 has enough space (size that is greater or equal to m
Example:
Input: nums1 = [1,2,3,0,0,0], m = 3 nums2 = [2,5,6], n = 3 Output: [1,2,2,3,5,6]
我的方法
寫程式碼,好久才寫出來,發現忽略了人家已經給了陣列實際長度,因為0不算,這樣問題就簡單了,但是我還堅持把自己的演算法寫完了,完全不用給定的長度!!!牛逼不!
package com.card; import java.util.Arrays; class GFG { public static String mergeSortArray(int[] a,int[] b) { int p=0; int q=0; while(p<a.length&&q<b.length){ if(a[p]<b[q]){ p++; continue; } for(int i=a.length-1;i>=p&&i>0;i--){ a[i]=a[i-1]; } a[p]=b[q]; q++; p=0; } if(p==a.length){ for(int i=a.length-(b.length-q);i<a.length;i++){ a[i]=b[q]; q++; } } return Arrays.toString(a); } /* Driver program to test maxSubArraySum */ public static void main(String[] args) { int[] a={2,0}; int[] b={1}; String res = mergeSortArray(a,b); System.out.println("solution is " + res); } }