0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

LeetCode 26:刪除有序數(shù)組中的重復(fù)項

算法與數(shù)據(jù)結(jié)構(gòu) ? 來源:吳師兄學(xué)算法 ? 作者:吳師兄學(xué)算法 ? 2022-12-21 10:34 ? 次閱讀

一、題目描述

給你兩個有序整數(shù)數(shù)組nums1nums2,請你將nums2合并到nums1中,使nums1成為一個有序數(shù)組。

初始化nums1nums2的元素數(shù)量分別為 m 和 n 。

你可以假設(shè)nums1的空間大小等于 m + n,這樣它就有足夠的空間保存來自nums2的元素。

二、題目解析

設(shè)置兩個索引ij分別指向 nums1 和 nums2 的有效元素的尾部,從它們的尾部開始向前遍歷。

同時設(shè)置索引cur指向nums1最末尾。

1ef69e64-80cd-11ed-8abf-dac502259ad0.png

在每次遍歷過程中,比較ij指向的元素值大小,把大的元素填充到cur的位置,填充完畢說明那個元素已經(jīng)放置在它應(yīng)該放置的位置,不需要在管它了,把cur向前移動,同時把i或者j向前移動。

繼續(xù)比較ij指向的元素值大小,把大的元素填充到cur的位置。

三、參考代碼

classSolution{
publicvoidmerge(int[]nums1,intm,int[]nums2,intn){
//索引從有序數(shù)組nums1有效元素的末端開始
//數(shù)組的下標(biāo)索引從零開始計數(shù)
//索引012
//數(shù)組[1,2,3]
inti=m-1;

//索引從有序數(shù)組nums2的末端開始
intj=n-1;

//從有序數(shù)組nums1最末端的位置開始保存元素
intcur=nums1.length-1;

//通過循環(huán)把num2的元素都移動到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的位置
//此時cur的元素已經(jīng)確定下來
nums1[cur]=nums1[i];

//接下來去確定cur前面一個元素應(yīng)該放什么數(shù)字
cur--;
//此時,索引i需要向前移動
i--;
//否則,如果num1中的索引位置為i的元素小于或者等于num2中索引位置為j的元素
}else{

//把num2中的索引位置為j的元素復(fù)制到索引為cur的位置
nums1[cur]=nums2[j];
//接下來去確定cur前面一個元素應(yīng)該放什么數(shù)字
cur--;
//此時,索引j需要向前移動
j--;
}
}
}
}

審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 元素
    +關(guān)注

    關(guān)注

    0

    文章

    47

    瀏覽量

    8592
  • 數(shù)組
    +關(guān)注

    關(guān)注

    1

    文章

    419

    瀏覽量

    26400

原文標(biāo)題:LeetCode 26:刪除有序數(shù)組中的重復(fù)項

文章出處:【微信號:TheAlgorithm,微信公眾號:算法與數(shù)據(jù)結(jié)構(gòu)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 0人收藏

    評論

    相關(guān)推薦
    熱點推薦

    二維數(shù)組指定條件刪除指定行,請教

    數(shù)組1的第一列進(jìn)行條件判斷,如果小于20,刪除所在行,最終需要得到數(shù)組2
    發(fā)表于 05-13 08:11

    刪除工作空間中的工程項目

    首先我們先刪除剛剛新建的工程模板。
    的頭像 發(fā)表于 05-06 09:27 ?429次閱讀
    <b class='flag-5'>刪除</b>工作空間中的工程項目

    redefinition of \'gImage_pic2\'

    ?:pic2.h 被多次包含(如直接或間接包含),且未使用頭文件保護(hù)(#ifndef 宏)導(dǎo)致變量重復(fù)定義?57。 ?變量定義在頭文件?:gImage_pic2 數(shù)組直接定義在 pic2.h
    發(fā)表于 04-01 11:55

    TDengine 發(fā)布時序數(shù)據(jù)分析 AI 智能體 TDgpt,核心代碼開源

    2025 年 3 月 26 日,濤思數(shù)據(jù)通過線上直播形式正式發(fā)布了其新一代時序數(shù)據(jù)分析 AI 智能體——TDgpt,并同步開源其核心代碼。這一創(chuàng)新功能作為 TDengine 3.3.6.0 的重要
    的頭像 發(fā)表于 03-27 10:30 ?244次閱讀
    TDengine 發(fā)布時<b class='flag-5'>序數(shù)</b>據(jù)分析 AI 智能體 TDgpt,核心代碼開源

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

    對于任何追求卓越運營的企業(yè)而言,批量管理如同精密時鐘的核心齒輪,精準(zhǔn)地調(diào)控著各項業(yè)務(wù)的有序運轉(zhuǎn)。今天小編要帶來怎么樣刪除hyper-v的虛擬機(jī)。 ? ?要刪除Hyper-V
    的頭像 發(fā)表于 02-05 13:39 ?753次閱讀
    hyper v <b class='flag-5'>刪除</b>,怎么樣<b class='flag-5'>刪除</b>hyper-v<b class='flag-5'>中</b>的虛擬機(jī)?

    數(shù)組的下標(biāo)為什么可以是負(fù)數(shù)

    最近有同學(xué)發(fā)來這樣一段代碼,并提出一個問題,數(shù)組的下標(biāo)為什么可以是負(fù)數(shù)? ? ? #include int main(){ const char *s = "helloworld"; const
    的頭像 發(fā)表于 12-20 11:18 ?456次閱讀

    指針數(shù)組和二維數(shù)組有沒有區(qū)別

    指針數(shù)組和二維數(shù)組有沒有區(qū)別?比如這樣的兩個代碼。 int main(){ char *s1[] = { "hello", "world", "total" }; char s2[][6
    的頭像 發(fā)表于 11-24 11:12 ?499次閱讀

    C語言數(shù)組應(yīng)用計算機(jī)導(dǎo)論A第6講:數(shù)組

    C語言數(shù)組應(yīng)用計算機(jī)導(dǎo)論A第6講:數(shù)組
    發(fā)表于 11-20 15:33 ?0次下載

    解讀版|Air780E軟件C語言內(nèi)存數(shù)組的神秘面紗!

    今天我們來揭開Air780E 軟件 C 語言內(nèi)存數(shù)組的神秘面紗,希望有所收獲。
    的頭像 發(fā)表于 11-17 10:00 ?591次閱讀
    解讀版|Air780E軟件<b class='flag-5'>中</b>C語言內(nèi)存<b class='flag-5'>數(shù)組</b>的神秘面紗!

    淺談多場景有序充電對公交綠色低碳轉(zhuǎn)型帶來的影響

    多場景有序充電作為一創(chuàng)新的技術(shù)和管理模式,為公交綠色低碳轉(zhuǎn)型提供了有力支持。在未來的發(fā)展,需要加強(qiáng)技術(shù)創(chuàng)新、標(biāo)準(zhǔn)制定、資金投入和安全管理等方面的工作,推動多場景有序充電技術(shù)的廣泛應(yīng)
    的頭像 發(fā)表于 10-30 08:55 ?424次閱讀

    labview字符串數(shù)組轉(zhuǎn)化為數(shù)值數(shù)組

    在LabVIEW,將字符串數(shù)組轉(zhuǎn)換為數(shù)值數(shù)組是一常見的任務(wù),尤其是在處理數(shù)據(jù)采集、信號處理或用戶輸入時。 1. 理解LabVIEW的數(shù)據(jù)類型 在開始之前,了解LabVIEW
    的頭像 發(fā)表于 09-04 17:47 ?5066次閱讀

    ubuntu刪除的文件怎么恢復(fù)

    在Ubuntu系統(tǒng),刪除的文件可以通過多種方法進(jìn)行恢復(fù)。本文將詳細(xì)介紹Ubuntu系統(tǒng)刪除文件的恢復(fù)方法,包括使用命令行工具、文件恢復(fù)軟件以及預(yù)防文件丟失的策略。本文將分為以下幾個
    的頭像 發(fā)表于 08-30 15:10 ?3006次閱讀

    重復(fù)接地的作用與實施

    重復(fù)接地是一種在中性點直接接地的電力系統(tǒng)采用的技術(shù)措施,通過在零干線的一個或多個位置用金屬導(dǎo)線將接地裝置連接起來。這 種措施主要應(yīng)用于低壓三相四線制中性點直接接地的配電線路。在施工過程
    的頭像 發(fā)表于 08-15 11:23 ?2147次閱讀

    鴻蒙語言基礎(chǔ)類庫:ohos.util.HashMap 非線性容器HashMap

    HashMap底層使用數(shù)組+鏈表+紅黑樹的方式實現(xiàn),查詢、插入和刪除的效率都很高。HashMap存儲內(nèi)容基于key-value的鍵值對映射,不能有重復(fù)的key,且一個key只能對應(yīng)一個value。
    的頭像 發(fā)表于 07-10 16:31 ?765次閱讀
    鴻蒙語言基礎(chǔ)類庫:ohos.util.HashMap 非線性容器HashMap

    ABB機(jī)器人的基本程序數(shù)據(jù)有哪些

    ABB機(jī)器人是一種廣泛應(yīng)用于工業(yè)自動化領(lǐng)域的智能設(shè)備,其基本程序數(shù)據(jù)是實現(xiàn)機(jī)器人自動化控制的基礎(chǔ)。本文將詳細(xì)介紹ABB機(jī)器人的基本程序數(shù)據(jù),包括程序結(jié)構(gòu)、數(shù)據(jù)類型、指令系統(tǒng)、程序控制、通信接口等方面
    的頭像 發(fā)表于 06-17 09:20 ?2082次閱讀

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品