Given two sorted integer arraysnums1andnums2, mergenums2intonums1as one sorted array.
Note:You may assume thatnums1has enough space (size that is greater or equal tom+n) to hold additional elements fromnums2. The number of elements initialized innums1andnums2aremandnrespectively.
這道題貌似也沒(méi)啥好說(shuō)的。比較簡(jiǎn)單。
這道題從末尾開(kāi)始比較最簡(jiǎn)單。因?yàn)檫@里相當(dāng)于是把一個(gè)sorted array插入另一個(gè)有多余space的sorted array。
不過(guò)要注意考慮到特殊情況,代碼中所寫的當(dāng)有多余space的sorted array已經(jīng)排序完成后剩下的另一個(gè)array的element的排序。
代碼如下。~
public class Solution { public void merge(int[] nums1, int m, int[] nums2, int n) { int a=m-1; int b=n-1; int start=m+n-1; while(a>=0&&b>=0){ if(nums1[a]>nums2[b]){ nums1[start--]=nums1[a--]; }else{ nums1[start--]=nums2[b--]; } } if(a<=0){ while(b>=0){ nums1[start--]=nums2[b--]; } } }}新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注