国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【力扣每日一題】2023.8.13 合并兩個有序數(shù)組

這篇具有很好參考價值的文章主要介紹了【力扣每日一題】2023.8.13 合并兩個有序數(shù)組。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

題目:

示例:

分析:

代碼:


題目:

【力扣每日一題】2023.8.13 合并兩個有序數(shù)組,力扣每日一題,leetcode,算法,c++,數(shù)據(jù)結(jié)構(gòu)

示例:

【力扣每日一題】2023.8.13 合并兩個有序數(shù)組,力扣每日一題,leetcode,算法,c++,數(shù)據(jù)結(jié)構(gòu)

分析:

題目給我們兩個升序數(shù)組,讓我們合并它們,要求合并之后仍然是升序,并且這個合并操作是在數(shù)組1原地修改的。數(shù)組1的有效數(shù)據(jù)長度為 m ,而數(shù)組1的長度為 m + n,n 是數(shù)組2的有效數(shù)據(jù)長度以及數(shù)組的長度。

比較直觀容易想到的做法就是先把數(shù)組1的尾部刪去 n 個無效數(shù)據(jù),再把數(shù)組2都添加到數(shù)組1的尾部。接著直接對數(shù)組1排序即可。這樣做是可以的,效果也還不錯。

【力扣每日一題】2023.8.13 合并兩個有序數(shù)組,力扣每日一題,leetcode,算法,c++,數(shù)據(jù)結(jié)構(gòu)

?不過這么做就沒有利用到原數(shù)組是升序的這樣一個特性。

另一個容易想到的是雙指針,我們用雙指針遍歷分別兩個數(shù)組,每次都比較兩個指針?biāo)冈氐拇笮?,將較小的元素添加進新數(shù)據(jù),接著往后移動該指針。直到兩個指針的大小分別為 m 和 n 即為遍歷結(jié)束。

最后將新數(shù)組賦值給數(shù)組1即可。

那這么做還是有點不痛快,還是直接在數(shù)組1原地修改比較舒服。那有沒有辦法呢?

答案是有的。

首先我們上述辦法肯定是不行的,這么做會把數(shù)組1的有效數(shù)據(jù)覆蓋掉,那應(yīng)該怎么做呢。

我們覆蓋無效數(shù)據(jù)不就好啦,不能從頭遍歷我們就從尾部遍歷,一樣是雙指針,只不過兩個指針初始化為 m - 1 和 n - 1 ,每次比較兩個指針?biāo)冈氐拇笮?,我們把較大的元素放到數(shù)組1的末尾,直到兩個指針都小于0,那么我們就是原地合并兩個數(shù)組完畢了。

【力扣每日一題】2023.8.13 合并兩個有序數(shù)組,力扣每日一題,leetcode,算法,c++,數(shù)據(jù)結(jié)構(gòu)文章來源地址http://www.zghlxwxcb.cn/news/detail-651196.html

代碼:

class Solution {
public:
    void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
        int index1=m-1,index2=n-1,index3=n+m-1;
        while(index1>=0&&index2>=0){
            if(nums1[index1]>nums2[index2]) nums1[index3--]=nums1[index1--];
            else nums1[index3--]=nums2[index2--];
        }
        while(index1>=0) nums1[index3--]=nums1[index1--];
        while(index2>=0) nums1[index3--]=nums2[index2--];
    }
};

到了這里,關(guān)于【力扣每日一題】2023.8.13 合并兩個有序數(shù)組的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 力扣經(jīng)典150題第一題:合并兩個有序數(shù)組

    合并兩個有序數(shù)組問題詳解與解決方法 1. 介紹 在編程面試中,合并兩個有序數(shù)組是一個經(jīng)典的問題。它要求將兩個有序數(shù)組合并為一個新的有序數(shù)組。本篇博客將深入討論這個問題,并提供解決方法。 2. 問題描述 給你兩個按 非遞減順序 排列的整數(shù)數(shù)組 nums1 和 nums2,另有兩

    2024年04月23日
    瀏覽(28)
  • C語言每日一題(22)合并兩個有序數(shù)組

    力扣網(wǎng) 88. 合并兩個有序數(shù)組 給你兩個按? 非遞減順序 ?排列的整數(shù)數(shù)組? nums1 ? 和? nums2 ,另有兩個整數(shù)? m ?和? n ?,分別表示? nums1 ?和? nums2 ?中的元素數(shù)目。 請你? 合并 ? nums2 ? 到? nums1 ?中,使合并后的數(shù)組同樣按? 非遞減順序 ?排列。 注意: 最終,合并后數(shù)組

    2024年02月08日
    瀏覽(31)
  • “三指針法“合并兩個有序數(shù)組(力扣每日一練)

    “三指針法“合并兩個有序數(shù)組(力扣每日一練)

    ? ? ? ? 我的第一想法確實是:先合并數(shù)組,再排序,搞完。 ? ? ? ? 哈哈哈,想那么多干嘛,目的達成了就好了。 力扣官方題解是雙指針: 還有糕手: Python: C#: ? ? ? 總結(jié) ? ? ? ? 可以稱之為\\\"三指針\\\" 方法,因為我們同時使用了三個指針(p1、p2 和 p)來操作和遍歷兩

    2024年02月02日
    瀏覽(22)
  • 力扣每日一道系列 --- LeetCode 88. 合并兩個有序數(shù)組

    力扣每日一道系列 --- LeetCode 88. 合并兩個有序數(shù)組

    ?? 江池?。?個人主頁 ??個人專欄: ?數(shù)據(jù)結(jié)構(gòu)探索 ?LeetCode每日一道 ?? 有航道的人,再渺小也不會迷途。 LeetCode 88. 合并兩個有序數(shù)組 首先創(chuàng)建一個臨時數(shù)組,其大小為第一個數(shù)組的大小(即nums1Size),其作用主要是。 通過循環(huán)遍歷兩個數(shù)組,將兩個數(shù)組元素比較后較

    2024年02月04日
    瀏覽(26)
  • C語言每日一題:6.移除元素+合并兩個有序數(shù)組。

    C語言每日一題:6.移除元素+合并兩個有序數(shù)組。

    一:暴力查找的方法: 1.找到對應(yīng)val值的下標(biāo),返回數(shù)組的下標(biāo)。 2.刪除對應(yīng)的下標(biāo),從前向后用后面覆蓋前面。當(dāng)后一個是數(shù)組最后一個數(shù)值是就賦值結(jié)束了(注意數(shù)組越界的問題)。 3.刪除了一個數(shù)之后數(shù)組元素個數(shù)要–。 4.查找和刪除是在一個循環(huán)里面因為val的值可能

    2024年02月15日
    瀏覽(27)
  • 力扣_數(shù)組26—合并兩個有序數(shù)組

    給你兩個按 非遞減順序 排列的整數(shù)數(shù)組 nums1 和 nums2,另有兩個整數(shù) m 和 n ,分別表示 nums1 和 nums2 中的元素數(shù)目。 請你 合并 nums2 到 nums1 中,使合并后的數(shù)組同樣按 非遞減順序 排列。 注意:最終,合并后數(shù)組不應(yīng)由函數(shù)返回,而是存儲在數(shù)組 nums1 中。為了應(yīng)對這種情況,

    2024年01月21日
    瀏覽(23)
  • LeetCode面試算法-力扣 88. 合并兩個有序數(shù)組

    88. 合并兩個有序數(shù)組 題目描述 ? ? 給你兩個按 非遞減順序 排列的整數(shù)數(shù)組 nums1 和 nums2,另有兩個整數(shù) m 和 n ,分別表示 nums1 和 nums2 中的元素數(shù)目。請你 合并 nums2 到 nums1 中,使合并后的數(shù)組同樣按 非遞減順序 排列。 注意: 最終,合并后數(shù)組不應(yīng)由函數(shù)返回,而是存儲

    2024年02月10日
    瀏覽(19)
  • 力扣每日一題2023.7.13

    力扣每日一題2023.7.13

    給我們一個矩陣,我們需要找出一條路徑從矩陣第一層(索引為0)到達矩陣最后一層,并且使得路徑上的數(shù)值之和最小. 如果是老手,那么應(yīng)該一眼就能看出來可以使用動態(tài)規(guī)劃,如果看不出來,那我們接下來一起分析分析. 首先我們先不要搞這么復(fù)雜,以示例1為例,我們就假設(shè)矩陣只有

    2024年02月15日
    瀏覽(30)
  • 【力扣每日一題】2023.8.27 合并區(qū)間

    【力扣每日一題】2023.8.27 合并區(qū)間

    目錄 題目: 示例: 分析: 代碼: 那么合并區(qū)間是在什么情況下才能合并呢? 我總結(jié)為兩種情況 第一種情況就是這樣,第二個區(qū)間的左區(qū)間大于第一個區(qū)間的左區(qū)間但是小于第一個區(qū)間的右區(qū)間,并且第一個區(qū)間的右區(qū)間小于第二個區(qū)間的右區(qū)間,這種情況下合并的結(jié)果就

    2024年02月11日
    瀏覽(17)
  • 【每日算法 && 數(shù)據(jù)結(jié)構(gòu)(C++)】—— 03 | 合并兩個有序數(shù)組(解題思路、流程圖、代碼片段)

    【每日算法 && 數(shù)據(jù)結(jié)構(gòu)(C++)】—— 03 | 合并兩個有序數(shù)組(解題思路、流程圖、代碼片段)

    An inch of time is an inch of gold, but you can’t buy that inch of time with an inch of gold. An inch of time is an inch of gold, but you can\\\'t buy that inch of time with an inch of gold 給你兩個有序數(shù)組,請將兩個數(shù)組進行合并,并且合并后的數(shù)組也必須有序 這個題目要求將兩個有序數(shù)組合并成一個有序數(shù)組。在數(shù)

    2024年02月11日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包