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

Leetcode每日一題——“合并兩個(gè)有序數(shù)組”

這篇具有很好參考價(jià)值的文章主要介紹了Leetcode每日一題——“合并兩個(gè)有序數(shù)組”。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

各位CSDN的uu們你們好呀,又到小雅蘭的愉快題解時(shí)候啦,今天,我們的題目?jī)?nèi)容是合并兩個(gè)有序數(shù)組,下面,讓我們進(jìn)入合并兩個(gè)有序數(shù)組的世界吧


Leetcode每日一題——“合并兩個(gè)有序數(shù)組”

示例 1:

輸入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3
輸出:[1,2,2,3,5,6]
解釋:需要合并 [1,2,3] 和 [2,5,6] 。
合并結(jié)果是 [1,2,2,3,5,6] ,其中斜體加粗標(biāo)注的為 nums1 中的元素。

示例 2:

輸入:nums1 = [1], m = 1, nums2 = [], n = 0
輸出:[1]
解釋:需要合并 [1] 和 [] 。
合并結(jié)果是 [1] 。

示例 3:

輸入:nums1 = [0], m = 0, nums2 = [1], n = 1
輸出:[1]
解釋:需要合并的數(shù)組是 [] 和 [1] 。
合并結(jié)果是 [1] 。
注意,因?yàn)?m = 0 ,所以 nums1 中沒有元素。nums1 中僅存的 0 僅僅是為了確保合并結(jié)果可以順利存放到 nums1 中。

?Leetcode每日一題——“合并兩個(gè)有序數(shù)組”


方法一:直接合并后排序

?最直觀的方法是先將數(shù)組nums2放進(jìn)數(shù)組nums1的尾部,然后直接對(duì)整個(gè)數(shù)組進(jìn)行排序。

Leetcode每日一題——“合并兩個(gè)有序數(shù)組”

int cmp(int* a, int* b) {
    return *a - *b;
}
void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n) {
    for (int i = 0; i != n; ++i) {
        nums1[m + i] = nums2[i];
    }
    qsort(nums1, nums1Size, sizeof(int), cmp);
}

但是這種方法不太好,來看看另外一種方法:?


方法二:雙指針法

Leetcode每日一題——“合并兩個(gè)有序數(shù)組”

Leetcode每日一題——“合并兩個(gè)有序數(shù)組”?

這種方法就比較好了

但是這種方法有點(diǎn)問題:如果第二個(gè)數(shù)組的首元素是0的話,依次比較,取小的尾插,那么就會(huì)覆蓋,所以換一種方式

倒著比?。。∫簿褪菑暮笸氨?。

Leetcode每日一題——“合并兩個(gè)有序數(shù)組”

Leetcode每日一題——“合并兩個(gè)有序數(shù)組”?

以此類推,這樣的方法也是非常高效的

下面,我們來看看源代碼:

void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n) {
    int end1=m-1;
    int end2=n-1;
    int i=m+n-1;
    while(end1>=0 && end2>=0)
    {
        if(nums1[end1]>nums2[end2])
        {
            nums1[i]=nums1[end1];
            i--;
            end1--;
        }
        else
        {
            nums1[i]=nums2[end2];
            i--;
            end2--;
        }
    }
    while(end2>=0)
    {
        nums1[i]=nums2[end2];
        i--;
        end2--;
    }
}

?Leetcode每日一題——“合并兩個(gè)有序數(shù)組”


好啦,小雅蘭的今日題解分享就到這里啦,還要繼續(xù)加油刷題噢!??!

Leetcode每日一題——“合并兩個(gè)有序數(shù)組”

?文章來源地址http://www.zghlxwxcb.cn/news/detail-423380.html

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

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

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

相關(guān)文章

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

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

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

    2024年02月15日
    瀏覽(27)
  • 【力扣每日一題】88. 合并兩個(gè)有序數(shù)組 &雙指針 & 輔助數(shù)組 & 8.13打卡

    【力扣每日一題】88. 合并兩個(gè)有序數(shù)組 &雙指針 & 輔助數(shù)組 & 8.13打卡

    88. 合并兩個(gè)有序數(shù)組 難度: 簡(jiǎn)單 描述: 給你兩個(gè)按 非遞減順序 排列的整數(shù)數(shù)組 nums1 和 nums2,另有兩個(gè)整數(shù) m 和 n ,分別表示 nums1 和 nums2 中的元素?cái)?shù)目。 請(qǐng)你 合并 nums2 到 nums1 中,使合并后的數(shù)組同樣按 非遞減順序 排列。 注意:最終,合并后數(shù)組不應(yīng)由函數(shù)返回,而

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

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

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

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

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

    2024年04月23日
    瀏覽(28)
  • leetcode 88 合并兩個(gè)有序數(shù)組

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

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

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

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

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

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

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

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

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

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

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

    2023年04月08日
    瀏覽(24)
  • “三指針法“合并兩個(gè)有序數(shù)組(力扣每日一練)

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

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

    2024年02月02日
    瀏覽(22)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包