一、題目描述
給你兩個(gè)有序整數(shù)數(shù)組nums1
和nums2
,請(qǐng)你將nums2
合并到nums1
中,使nums1
成為一個(gè)有序數(shù)組。
初始化nums1
和nums2
的元素?cái)?shù)量分別為 m 和 n 。
你可以假設(shè)nums1
的空間大小等于 m + n,這樣它就有足夠的空間保存來(lái)自nums2
的元素。
二、題目解析
設(shè)置兩個(gè)索引i
和j
分別指向 nums1 和 nums2 的有效元素的尾部,從它們的尾部開(kāi)始向前遍歷。
同時(shí)設(shè)置索引cur
指向nums1
的最末尾。

在每次遍歷過(guò)程中,比較i
和j
指向的元素值大小,把大的元素填充到cur
的位置,填充完畢說(shuō)明那個(gè)元素已經(jīng)放置在它應(yīng)該放置的位置,不需要在管它了,把cur
向前移動(dòng),同時(shí)把i
或者j
向前移動(dòng)。
繼續(xù)比較i
和j
指向的元素值大小,把大的元素填充到cur
的位置。
三、參考代碼
classSolution{
publicvoidmerge(int[]nums1,intm,int[]nums2,intn){
//索引從有序數(shù)組nums1有效元素的末端開(kāi)始
//數(shù)組的下標(biāo)索引從零開(kāi)始計(jì)數(shù)
//索引012
//數(shù)組[1,2,3]
inti=m-1;
//索引從有序數(shù)組nums2的末端開(kāi)始
intj=n-1;
//從有序數(shù)組nums1最末端的位置開(kāi)始保存元素
intcur=nums1.length-1;
//通過(guò)循環(huán)把num2的元素都移動(dòng)到num1中
while(j>=0){
//比較num1和num2中當(dāng)前的元素大小
//如果num1中的索引位置為i的元素大于num2中索引位置為j的元素
//為了防止越界i必須是大于等于0
if(i>=0&&nums1[i]>nums2[j]){
//把num1中的索引位置為i的元素復(fù)制到索引為cur的位置
//此時(shí)cur的元素已經(jīng)確定下來(lái)
nums1[cur]=nums1[i];
//接下來(lái)去確定cur前面一個(gè)元素應(yīng)該放什么數(shù)字
cur--;
//此時(shí),索引i需要向前移動(dòng)
i--;
//否則,如果num1中的索引位置為i的元素小于或者等于num2中索引位置為j的元素
}else{
//把num2中的索引位置為j的元素復(fù)制到索引為cur的位置
nums1[cur]=nums2[j];
//接下來(lái)去確定cur前面一個(gè)元素應(yīng)該放什么數(shù)字
cur--;
//此時(shí),索引j需要向前移動(dòng)
j--;
}
}
}
}
審核編輯 :李倩
-
元素
+關(guān)注
關(guān)注
0文章
47瀏覽量
8538 -
數(shù)組
+關(guān)注
關(guān)注
1文章
419瀏覽量
26213
原文標(biāo)題:LeetCode 26:刪除有序數(shù)組中的重復(fù)項(xiàng)
文章出處:【微信號(hào):TheAlgorithm,微信公眾號(hào):算法與數(shù)據(jù)結(jié)構(gòu)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
redefinition of \'gImage_pic2\'
TDengine 發(fā)布時(shí)序數(shù)據(jù)分析 AI 智能體 TDgpt,核心代碼開(kāi)源

hyper v 刪除,怎么樣刪除hyper-v中的虛擬機(jī)?

指針數(shù)組和二維數(shù)組有沒(méi)有區(qū)別
C語(yǔ)言數(shù)組應(yīng)用計(jì)算機(jī)導(dǎo)論A第6講:數(shù)組
解讀版|Air780E軟件中C語(yǔ)言內(nèi)存數(shù)組的神秘面紗!

淺談多場(chǎng)景有序充電對(duì)公交綠色低碳轉(zhuǎn)型帶來(lái)的影響
labview字符串數(shù)組轉(zhuǎn)化為數(shù)值數(shù)組
ubuntu刪除的文件怎么恢復(fù)
鴻蒙語(yǔ)言基礎(chǔ)類(lèi)庫(kù):ohos.util.HashMap 非線性容器HashMap

服務(wù)器數(shù)據(jù)恢復(fù)—存儲(chǔ)中卷被刪除后重建如何恢復(fù)被刪除卷的數(shù)據(jù)?
嵌入式中零長(zhǎng)度數(shù)組基本操作方法

時(shí)序數(shù)據(jù)庫(kù)是什么?時(shí)序數(shù)據(jù)庫(kù)的特點(diǎn)
OpenHarmony語(yǔ)言基礎(chǔ)類(lèi)庫(kù)【@ohos.util.HashMap (非線性容器HashMap)】

深入探索KUKA KRL中的數(shù)組應(yīng)用

評(píng)論