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

LeetCode 0088. 合并兩個(gè)有序數(shù)組

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

【LetMeFly】88.合并兩個(gè)有序數(shù)組:O(m + 1) + O(1)的做法

力扣題目鏈接:https://leetcode.cn/problems/merge-sorted-array/

給你兩個(gè)按 非遞減順序 排列的整數(shù)數(shù)組?nums1 nums2,另有兩個(gè)整數(shù) mn ,分別表示 nums1nums2 中的元素?cái)?shù)目。

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

注意:最終,合并后數(shù)組不應(yīng)由函數(shù)返回,而是存儲(chǔ)在數(shù)組 nums1 中。為了應(yīng)對(duì)這種情況,nums1 的初始長(zhǎng)度為 m + n,其中前 m 個(gè)元素表示應(yīng)合并的元素,后 n 個(gè)元素為 0 ,應(yīng)忽略。nums2 的長(zhǎng)度為 n

?

示例 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 中。

?

提示:

  • nums1.length == m + n
  • nums2.length == n
  • 0 <= m, n <= 200
  • 1 <= m + n <= 200
  • -109 <= nums1[i], nums2[j] <= 109

?

進(jìn)階:你可以設(shè)計(jì)實(shí)現(xiàn)一個(gè)時(shí)間復(fù)雜度為 O(m + n) 的算法解決此問題嗎?

方法一:三指針(雙指針)

這道題不返回任何值,很顯然,出題者想讓你在nums1數(shù)組上原地修改。

怎么原地修改呢?nums1后面全是 0 0 0,而這些地方本來應(yīng)該是“大數(shù)”,所以我們使用兩個(gè)指針,從 n u m s 1 nums1 nums1 n u m s 2 nums2 nums2的大數(shù)區(qū)域往前指,每次將二者較大的那個(gè)放到nums1后面不就可以了嗎。

      tail
      ↓
1 3 0 0
  ↑
2 6
  ↑

3 < 6 3 < 6 3<6,所以將 6 6 6放到tail處,

    tail
    ↓
1 3 0 6
  ↑
2 -
↑

3 > 2 3 > 2 3>2,所以將 3 3 3放到tail處,

  tail
  ↓
1 - 3 6
↑
2 -
↑

1 < 2 1 < 2 1<2,所以將 2 2 2放到tail處,

tail
↓
1 2 3 6
↑
- -

n u m s 2 nums2 nums2的指針指完了,任務(wù)完成,得到 [ 1 , 2 , 3 , 6 ] [1, 2, 3, 6] [1,2,3,6]

  • 時(shí)間復(fù)雜度 O ( m + n ) O(m + n) O(m+n)
  • 空間復(fù)雜度 O ( 1 ) O(1) O(1)

AC代碼

C++
class Solution {
public:
    void merge(vector<int>& nums1, int l1, vector<int>& nums2, int l2) {
        int n = l1 + l2 - 1;
        l1--, l2--;
        while (l2 >= 0) {
            while (l1 >= 0 && nums1[l1] > nums2[l2]) {
                nums1[n--] = nums1[l1--];
            }
            nums1[n--] = nums2[l2--];
        }
    }
};
Python
from typing import List

class Solution:
    def merge(self, nums1: List[int], l1: int, nums2: List[int], l2: int) -> None:
        """
        Do not return anything, modify nums1 in-place instead.
        """
        l = l1 + l2 - 1
        l1, l2 = l1 - 1, l2 - 1
        while l2 >= 0:
            while l1 >= 0 and nums1[l1] > nums2[l2]:
                nums1[l] = nums1[l1]
                l, l1 = l - 1, l1 - 1
            nums1[l] = nums2[l2]
            l, l2 = l - 1, l2 - 1

同步發(fā)文于CSDN,原創(chuàng)不易,轉(zhuǎn)載經(jīng)作者同意后請(qǐng)附上原文鏈接哦~
Tisfy:https://letmefly.blog.csdn.net/article/details/132256535文章來源地址http://www.zghlxwxcb.cn/news/detail-645812.html

到了這里,關(guān)于LeetCode 0088. 合并兩個(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)文章

  • 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)
  • 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_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ǔ)

    2023年04月15日
    瀏覽(21)
  • Leetcode每日一題——“合并兩個(gè)有序數(shù)組”

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

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

    2023年04月24日
    瀏覽(37)
  • ?LeetCode解法匯總88. 合并兩個(gè)有序數(shù)組

    https://github.com/September26/java-algorithms 給你兩個(gè)按? 非遞減順序 ?排列的整數(shù)數(shù)組? nums1 ? 和? nums2 ,另有兩個(gè)整數(shù)? m ?和? n ?,分別表示? nums1 ?和? nums2 ?中的元素?cái)?shù)目。 請(qǐng)你? 合并 ? nums2 ? 到? nums1 ?中,使合并后的數(shù)組同樣按? 非遞減順序 ?排列。 注意: 最終,合并

    2024年02月12日
    瀏覽(29)
  • LeetCode-Java: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月05日
    瀏覽(29)
  • 88. 合并兩個(gè)有序數(shù)組、Leetcode的Python實(shí)現(xiàn)

    博客主頁:??李歘歘的博客 ?? ??每天不定期分享一些包括但不限于計(jì)算機(jī)基礎(chǔ)、算法、后端開發(fā)相關(guān)的知識(shí)點(diǎn),以及職場(chǎng)小菜雞的生活。?? ??點(diǎn)關(guān)注不迷路,總有一些??知識(shí)點(diǎn)??是你想要的?? ??今天的內(nèi)容是 ? ? Leetcode? 88. 合并兩個(gè)有序數(shù)組? ?? ? ?????????

    2024年02月06日
    瀏覽(23)
  • 【刷爆LeetCode_01題_合并兩個(gè)有序數(shù)組】

    1)python的列表和數(shù)組 2)sort()函數(shù) 3)sort函數(shù)和sorted函數(shù)的區(qū)別

    2024年04月29日
    瀏覽(41)
  • 【LeetCode】移除元素、刪除有序數(shù)組中的重復(fù)項(xiàng)、合并兩個(gè)有序數(shù)組

    【LeetCode】移除元素、刪除有序數(shù)組中的重復(fù)項(xiàng)、合并兩個(gè)有序數(shù)組

    ?????作者: @情話0.0 ??專欄:《LeetCode》 ??題目鏈接:移除元素、刪除有序數(shù)組中的重復(fù)項(xiàng)、合并兩個(gè)有序數(shù)組 給你一個(gè)數(shù)組 nums 和一個(gè)值 val,你需要 原地移除所有數(shù)值等于 val 的元素,并返回移除后數(shù)組的新長(zhǎng)度。 不要使用額外的數(shù)組空間,你必須僅使用 O(1) 額外空

    2023年04月09日
    瀏覽(25)
  • C語言 | Leetcode C語言題解之第21題合并兩個(gè)有序鏈表

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包