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

力扣_數(shù)組26—合并兩個有序數(shù)組

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

題目

給你兩個按 非遞減順序 排列的整數(shù)數(shù)組 nums1 和 nums2,另有兩個整數(shù) m 和 n ,分別表示 nums1 和 nums2 中的元素數(shù)目。

請你 合并 nums2 到 nums1 中,使合并后的數(shù)組同樣按 非遞減順序 排列。

注意:最終,合并后數(shù)組不應(yīng)由函數(shù)返回,而是存儲在數(shù)組 nums1 中。為了應(yīng)對這種情況,nums1 的初始長度為 m + n,其中前 m 個元素表示應(yīng)合并的元素,后 n 個元素為 0 ,應(yīng)忽略。nums2 的長度為 n 。文章來源地址http://www.zghlxwxcb.cn/news/detail-810400.html

思路

  • 雙指針
    • 新建一個數(shù)組,以及兩個指針,分別指向 n u m s 1 , n u m s 2 nums1, nums2 nums1,nums2 起始位置
    • 比較 n u m s 1 [ p 1 ] nums1[p1] nums1[p1] n u m s 2 [ p 2 ] nums2[p2] nums2[p2] 將小的放入新建的數(shù)組中,并將指針加 1 1 1
    • 把新建的數(shù)組賦給 n u m s 1 nums1 nums1
  • 降低空間復(fù)雜度
    • 倒序比較可以防止覆蓋
    • 初始化三個指針: p 1 = m ? 1 , p 2 = n ? 1 , p = m + n ? 1 p1=m-1, p2=n-1,p=m+n-1 p1=m?1,p2=n?1,p=m+n?1
    • 比較 n u m s 1 [ p 1 ] nums1[p1] nums1[p1] n u m s 2 [ p 2 ] nums2[p2] nums2[p2] 將大的放入 n u m s [ p ] nums[p] nums[p],并將指針減 1 1 1

代碼

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

到了這里,關(guān)于力扣_數(shù)組26—合并兩個有序數(shù)組的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 力扣每日一題88:合并兩個有序數(shù)組

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

    2024年02月07日
    瀏覽(24)
  • 力扣經(jīng)典150題第一題:合并兩個有序數(shù)組

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

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

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

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

    2024年02月02日
    瀏覽(22)
  • 【力扣每日一題】2023.8.13 合并兩個有序數(shù)組

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

    目錄 題目: 示例: 分析: 代碼: 題目給我們兩個升序數(shù)組,讓我們合并它們,要求合并之后仍然是升序,并且這個合并操作是在數(shù)組1原地修改的。數(shù)組1的有效數(shù)據(jù)長度為 m ,而數(shù)組1的長度為 m + n,n 是數(shù)組2的有效數(shù)據(jù)長度以及數(shù)組的長度。 比較直觀容易想到的做法就是

    2024年02月12日
    瀏覽(26)
  • LeetCode 0088. 合并兩個有序數(shù)組

    力扣題目鏈接:https://leetcode.cn/problems/merge-sorted-array/ 給你兩個按 非遞減順序 排列的整數(shù)數(shù)組? nums1 和 nums2 ,另有兩個整數(shù) m 和 n ,分別表示 nums1 和 nums2 中的元素數(shù)目。 請你 合并 nums2 到 nums1 中,使合并后的數(shù)組同樣按 非遞減順序 排列。 注意: 最終,合并后數(shù)組不應(yīng)由

    2024年02月13日
    瀏覽(34)
  • 【Leetcode】88.合并兩個有序數(shù)組

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

    2024年02月12日
    瀏覽(25)
  • LeetCode88——合并兩個有序數(shù)組

    LeetCode88——合并兩個有序數(shù)組

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

    2024年02月08日
    瀏覽(26)
  • Leetcode. 88合并兩個有序數(shù)組

    Leetcode. 88合并兩個有序數(shù)組

    合并兩個有序數(shù)組 核心思路: 依次比較,取較小值放入新數(shù)組中 i 遍歷nums1 , j 遍歷nums2 ,取較小值放入nums3中 那如果nums[i] 和nums[j]中相等,隨便放一個到nums3 那如果nums[i] 和nums[j]中相等,隨便放一個到nums3 此時 nums1 中的元素已經(jīng)走完了,那么直接把 nums2 中剩下的元素拿到

    2023年04月08日
    瀏覽(24)
  • leetcode 88 合并兩個有序數(shù)組

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

    2024年02月03日
    瀏覽(19)
  • LeetCode_88. 合并兩個有序數(shù)組

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

    2023年04月15日
    瀏覽(21)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包