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

算法訓(xùn)練 第一周

這篇具有很好參考價值的文章主要介紹了算法訓(xùn)練 第一周。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

一、合并兩個有序數(shù)組

算法訓(xùn)練 第一周,算法
本題給出了兩個整數(shù)數(shù)組nums1和nums2,這兩個數(shù)組均是非遞減排列,要求我們將這兩個數(shù)組合并成一個非遞減排列的數(shù)組。題目中還要求我們把合并完的數(shù)組存儲在nums1中,并且為了存儲兩個數(shù)組中全部的數(shù)據(jù),nums1中給出了空余的空間來存放nums2中的數(shù)據(jù)。本題的做法有很多,在此我們主要討論三種解題思路。

1.先合并后排序

我們可以先將nums2中的元素全部拷貝到nums1中的空閑空間中去,然后再將nums1整體排序即可,代碼如下:

class Solution {
    public void merge(int[] nums1, int m, int[] nums2, int n) {
        int i = m;
        int j = 0;
        while(i < m + n) {
            nums1[i++] = nums2[j++];
        }
        Arrays.sort(nums1);
    }
}
復(fù)雜度分析
  • 時間復(fù)雜度:O((m+n)log(m+n))。 排序序列長度為 m+n,套用快速排序的時間復(fù)雜度即可,平均情況為 O((m+n)log(m+n))。

  • 空間復(fù)雜度:O(log?(m+n))。 排序序列長度為 m+n,套用快速排序的空間復(fù)雜度即可,平均情況為 O(log?(m+n))。

2.正序雙指針

我們可以先將nums1中的數(shù)據(jù)拷貝到一個新的數(shù)組nums3中去,以便于我們對nums1本身的操作,因?yàn)榻o出的兩個數(shù)組是非遞減排序的,所以我們只要在遍歷的過程中每次比較nums2和nums3中的元素,將較小的那個元素放入nums1中即可,具體代碼如下:

class Solution {
    public void merge(int[] nums1, int m, int[] nums2, int n) {
        int[] nums3 = new int[m];//創(chuàng)建新數(shù)組來存放nums1中的數(shù)據(jù)
        for(int i = 0; i < m; i++) {
            nums3[i] = nums1[i];
        }
        int i = 0;
        int o1 = 0;
        int o2 = 0;
        while(o1 < m && o2 < n) {
            if(nums3[o1] < nums2[o2]) {//挑選出較小的數(shù)據(jù)放入nums1,然后對應(yīng)的下標(biāo)后移
                nums1[i++] = nums3[o1++];
            } else {
                nums1[i++] = nums2[o2++];
            }
        }
        while(o1 < m) {//將剩余的數(shù)據(jù)全部放入nums1
            nums1[i++] = nums3[o1++];
        }
        while(o2 < n) {
            nums1[i++] = nums2[o2++];
        }
    }
}
復(fù)雜度分析
  • 時間復(fù)雜度:O(m+n)。 指針移動單調(diào)遞增,最多移動 m+n 次,因此時間復(fù)雜度為 O(m+n)。
  • 空間復(fù)雜度:O(m+n)。需要建立一個新數(shù)組存放nums1的元素。

3.倒序雙指針

此為上一個解法的優(yōu)化解法,因?yàn)閚ums1中的數(shù)據(jù)存放在數(shù)組的前部分中,后面為了給nums2中的數(shù)據(jù)留空間全部都是空的,那我們就可以從后向前遍歷,這樣就不需要創(chuàng)建新的數(shù)組來存放nums1中的數(shù)據(jù)了。只不過是我們需要每次選取nums1和nums2中較大的那個數(shù)據(jù),然后從后向前的存入nums1,代碼如下:文章來源地址http://www.zghlxwxcb.cn/news/detail-695205.html

class Solution {
    public void merge(int[] nums1, int m, int[] nums2, int n) {
        int index = m + n - 1;
        int i = m - 1;
        int j = n - 1;
        while(i >= 0 && j >= 0) {
            if(nums1[i] > nums2[j]) {
                nums1[index--] = nums1[i--];
            } else {
                nums1[index--] = nums2[j--];
            }
        }
        while(j >= 0) {
            nums1[index--] = nums2[j--];
        }
        while(i >= 0) {
            nums1[index--] = nums1[i--];
        }
    }
}
復(fù)雜度分析
  • 時間復(fù)雜度:O(m+n)。 指針移動單調(diào)遞減,最多移動 m+n 次,因此時間復(fù)雜度為 O(m+n)。
  • 空間復(fù)雜度:O(1)。

到了這里,關(guān)于算法訓(xùn)練 第一周的文章就介紹完了。如果您還想了解更多內(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)文章

  • 第一周作業(yè)

    第一周作業(yè)

    (1)VMware下載安裝 1)下載地址:https://www.vmware.com/cn/products/workstation-pro/workstation-pro-evaluation.html 2)選擇對應(yīng)的操作系統(tǒng)版本進(jìn)行下載 3)VMware安裝 雙擊下載好的安裝包 點(diǎn)擊“下一步” 選中“我接受許可協(xié)議中的條款”,點(diǎn)擊“下一步” 安裝位置可自定義,點(diǎn)擊“下一步”

    2024年02月03日
    瀏覽(24)
  • JAVA EE 第一周

    計算機(jī)Z20-第1周作業(yè)? ? ? ? 總分:100分? ? ? ? ? ? ? 1 .?單選題?簡單?6分 下列選項(xiàng)中,哪些屬于網(wǎng)站建設(shè)常用技術(shù)( )。 A.HTML B.JavaScript C.CSS D.以上都是 2 .?單選題?簡單?6分 下列選項(xiàng)中,哪個不是靜態(tài)網(wǎng)頁的文件擴(kuò)展名( )。 A.xml B.jsp C.htm D.shtml 3 .?單選題?簡單?6分

    2024年02月06日
    瀏覽(19)
  • 前端實(shí)習(xí)第一周周記

    前端實(shí)習(xí)第一周周記

    第一天來的時候,十點(diǎn)左右就開始跑代碼了,公司發(fā)了電腦,但由于自己的電腦環(huán)境比較齊全,所以就先用自己的電腦跑的代碼。 一共是兩個項(xiàng)目,一個pc類似于管理系統(tǒng),還有一個是微信小程序。 拉代碼的過程中遇到的問題: 自己的電腦git切換用戶名和密碼后拉代碼報錯

    2024年02月15日
    瀏覽(22)
  • 第一周:AI產(chǎn)品經(jīng)理跳槽準(zhǔn)備工作

    第一周:AI產(chǎn)品經(jīng)理跳槽準(zhǔn)備工作

    因素1:AI行業(yè)發(fā)展現(xiàn)狀機(jī)會和未來 可以關(guān)注一些AI行業(yè)報告,這里我讀了大概十來份報告,截取了一些關(guān)注點(diǎn)。 報告下載: 2023中國AI商業(yè)落地投資價值研究報告(63頁):人工智能機(jī)會、價值評估和AI+行業(yè)場景分析、服務(wù)商案例、未來發(fā)展; 2. AI人才市場情況 報告下載:2

    2024年02月02日
    瀏覽(22)
  • 云曦暑期學(xué)習(xí)第一周——sql注入

    云曦暑期學(xué)習(xí)第一周——sql注入

    sql注入是指web應(yīng)用程序?qū)τ脩糨斎霐?shù)據(jù)的合法性沒有判斷,前端傳入后端的參數(shù)是攻擊者可控的,并且參數(shù)帶入數(shù)據(jù)庫查詢,攻擊者可以通過構(gòu)造不同的sql語句來實(shí)現(xiàn)對數(shù)據(jù)庫的任意操作 條件: 1.參數(shù)用戶可控:前端傳給后端的參數(shù)內(nèi)容是用戶可以控制的 2.參數(shù)帶入數(shù)據(jù)查詢

    2024年02月16日
    瀏覽(18)
  • Effective Objective-C學(xué)習(xí)第一周

    OC是一種消息型語言,使用的是“消息結(jié)構(gòu)”而非“函數(shù)調(diào)用”,由smalltalk演化而來。使用消息結(jié)構(gòu)的語言運(yùn)行時執(zhí)行的代碼由運(yùn)行環(huán)境來決定,而使用函數(shù)調(diào)用的語言由編譯器決定。 OC將堆內(nèi)存管理抽象出來了。不需要使用malloc或者free來分配或釋放對象所占的內(nèi)存。OC運(yùn)行

    2024年01月17日
    瀏覽(42)
  • 浙大數(shù)據(jù)結(jié)構(gòu)第一周01-復(fù)雜度3 二分查找

    本題要求實(shí)現(xiàn)二分查找算法。 函數(shù)接口定義: 其中 List 結(jié)構(gòu)定義如下: L 是用戶傳入的一個線性表,其中 ElementType 元素可以通過、==、進(jìn)行比較,并且題目保證傳入的數(shù)據(jù)是遞增有序的。函數(shù) BinarySearch 要查找 X 在 Data 中的位置,即數(shù)組下標(biāo)(注意:元素從下標(biāo)1開始存儲)

    2024年02月12日
    瀏覽(32)
  • **PyTorch月學(xué)習(xí)計劃 - 第一周;第6-7天: 自動梯度(Autograd)**

    PyTorch月學(xué)習(xí)計劃 - 第6-7天: 自動梯度(Autograd) 學(xué)習(xí)目標(biāo): 掌握自動微分的基本原理,特別是在深度學(xué)習(xí)中的應(yīng)用。 學(xué)會如何在PyTorch中使用autograd模塊進(jìn)行自動梯度計算。 學(xué)習(xí)內(nèi)容: 自動微分和計算圖的概念 自動微分:自動微分是深度學(xué)習(xí)中用于自動計算導(dǎo)數(shù)或梯度的技

    2024年01月21日
    瀏覽(29)
  • 機(jī)器學(xué)習(xí)第一周:用卷積神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)Mnist手寫數(shù)字識別(付基礎(chǔ)知識解釋)

    MNIST 數(shù)據(jù)集是一個手寫數(shù)字識別數(shù)據(jù)集,包含了 60000 張訓(xùn)練圖像和 10000 張測試圖像,每張圖像都是 28x28 像素的灰度圖像。 在這個代碼中,我們首先使用了 numpy 庫中的 np.random.seed() 方法來設(shè)置隨機(jī)種子,以確保結(jié)果可重復(fù)。 然后,我們使用了 Keras 中的 mnist.load_data() 方法來

    2024年02月08日
    瀏覽(29)
  • sheng的學(xué)習(xí)筆記-【中文】【吳恩達(dá)課后測驗(yàn)】Course 1 - 神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí) - 第一周測驗(yàn)

    sheng的學(xué)習(xí)筆記-【中文】【吳恩達(dá)課后測驗(yàn)】Course 1 - 神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí) - 第一周測驗(yàn)

    目錄:目錄 1.“人工智能是新電力” 這個比喻指的是什么? A. 【 ?】人工智能為我們的家庭和辦公室的個人設(shè)備供電,類似于電力。 B. 【 ?】通過“智能電網(wǎng)”,人工智能正在傳遞新一波的電力。 C. 【 ?】人工智能在計算機(jī)上運(yùn)行,因此由電力驅(qū)動,但它讓計算機(jī)做以前

    2024年02月07日
    瀏覽(31)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包