題目描述:
給定兩個有序整數(shù)數(shù)組?nums1 和 nums2闪水,將 nums2 合并到?nums1?中觉痛,使得?num1 成為一個有序數(shù)組翼抠。
說明:
初始化?nums1 和 nums2 的元素數(shù)量分別為?m 和 n戈擒。
你可以假設(shè)?nums1?有足夠的空間(空間大小大于或等于?m + n)來保存 nums2 中的元素券躁。
示例:
輸入:
nums1 = [1,2,3,0,0,0], m = 3
nums2 = [2,5,6],? ? ? n = 3
輸出:?[1,2,2,3,5,6]
解法:
1.調(diào)用函數(shù)庫arrcopy將兩個數(shù)組合并為一個數(shù)組后再排序
2.雙指針法 從前往后
將nums1數(shù)組元素復(fù)制到nums1_copy數(shù)組中
設(shè)置兩個指針p1,p2分別指向nums1_copy數(shù)組中的第一個元素和nums2數(shù)組中的第一個元素
p指向結(jié)果數(shù)組nums1的第一個元素
比較nums1_copy[p1]和nums2[p2]的大小
前者大 將nums2[p2]的值填到nums1[p]中 p2++ p++
后者大?將nums1_copy[p1]的值填到nums1[p]中 p1++ p++
最終檢查nums1_copy和nums2中是否有剩余元素 有的話加到nums1中
3.雙指針法 從后往前
從結(jié)果數(shù)組nums1的末尾往前填充
比較nums1和nums2的末尾元素 誰大就填到nums1的末尾
最后如果nums2中還有元素沒有填充轰胁,則直接加到nums1的開頭