chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何將若干視頻片段還原成原視頻?

算法與數(shù)據(jù)結(jié)構(gòu) ? 來(lái)源:labuladong ? 作者:labuladong ? 2021-05-13 11:23 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1024. 視頻拼接(Medium)

前面發(fā)過(guò) 幾個(gè)視頻,也算是對(duì)視頻剪輯入了個(gè)門。像我這種非專業(yè)剪輯玩家,不做什么宏大特效電影鏡頭,只是做個(gè)視頻教程,其實(shí)也沒(méi)啥難度,只需要把視頻剪流暢,所以用到最多的功能就是切割功能,然后刪除和拼接視頻片接。

沒(méi)有剪過(guò)視頻的讀者可能不知道,在常用的剪輯軟件中視頻被切割成若干片段之后,每個(gè)片段都可以還原成原始視頻。

就比如一個(gè) 10 秒的視頻,在中間切一刀剪成兩個(gè) 5 秒的視頻,這兩個(gè)五秒的視頻各自都可以還原成 10 秒的原視頻。就好像蚯蚓,把自己切成 4 段就能搓麻,把自己切成 11 段就可以湊一個(gè)足球隊(duì)。

剪視頻時(shí),每個(gè)視頻片段都可以抽象成了一個(gè)個(gè)區(qū)間,時(shí)間就是區(qū)間的端點(diǎn),這些區(qū)間有的相交,有的不相交……

假設(shè)剪輯軟件不支持將視頻片段還原成原視頻,那么如果給我若干視頻片段,我怎么將它們還原成原視頻呢?

這是個(gè)很有意思的區(qū)間算法問(wèn)題,也是力扣第 1024 題「視頻拼接」,題目如下:

95c0b3b0-b322-11eb-bf61-12bb97331649.jpg

函數(shù)簽名如下:

int videoStitching(int[][] clips, int T);

記得以前寫過(guò)好幾篇區(qū)間相關(guān)的問(wèn)題:

區(qū)間問(wèn)題合集 寫過(guò)求區(qū)間交集、區(qū)間并集、區(qū)間覆蓋這幾個(gè)問(wèn)題。

貪心算法做時(shí)間管理 寫過(guò)利用貪心算法求不相交的區(qū)間。

算上本文的區(qū)間剪輯問(wèn)題,經(jīng)典的區(qū)間問(wèn)題也就都講完了。

思路分析

題目并不難理解,給定一個(gè)目標(biāo)區(qū)間和若干小區(qū)間,如何通過(guò)裁剪和組合小區(qū)間拼湊出目標(biāo)區(qū)間?最少需要幾個(gè)小區(qū)間?

前文多次說(shuō)過(guò),區(qū)間問(wèn)題肯定按照區(qū)間的起點(diǎn)或者終點(diǎn)進(jìn)行排序。

因?yàn)榕判蛑蟾菀渍业较噜弲^(qū)間之間的聯(lián)系,如果是求最值的問(wèn)題,可以使用貪心算法進(jìn)行求解。

區(qū)間問(wèn)題特別容易用貪心算法,公眾號(hào)歷史文章除了 貪心算法之區(qū)間調(diào)度,還有一篇 貪心算法玩跳躍游戲,其實(shí)這個(gè)跳躍游戲就相當(dāng)于一個(gè)將起點(diǎn)排序的區(qū)間問(wèn)題,你細(xì)品,你細(xì)品。

至于到底如何排序,這個(gè)就要因題而異了,我做這道題的思路是先按照起點(diǎn)升序排序,如果起點(diǎn)相同的話按照終點(diǎn)降序排序。

為什么這樣排序呢,主要考慮到這道題的以下兩個(gè)特點(diǎn):

1、要用若干短視頻湊出完成視頻[0, T],至少得有一個(gè)短視頻的起點(diǎn)是 0。

這個(gè)很好理解,如果沒(méi)有一個(gè)短視頻是從 0 開(kāi)始的,那么區(qū)間[0, T]肯定是湊不出來(lái)的。

2、如果有幾個(gè)短視頻的起點(diǎn)都相同,那么一定應(yīng)該選擇那個(gè)最長(zhǎng)(終點(diǎn)最大)的視頻。

這一條就是貪心的策略,因?yàn)轭}目讓我們計(jì)算最少需要的短視頻個(gè)數(shù),如果起點(diǎn)相同,那肯定是越長(zhǎng)越好,不要白不要,多出來(lái)了大不了剪輯掉嘛。

基于以上兩個(gè)特點(diǎn),將clips按照起點(diǎn)升序排序,起點(diǎn)相同的按照終點(diǎn)降序排序,最后得到的區(qū)間順序就像這樣:

95f18404-b322-11eb-bf61-12bb97331649.jpg

這樣我們就可以確定,如果clips[0]是的起點(diǎn)是 0,那么clips[0]這個(gè)視頻一定會(huì)被選擇。

96200e0a-b322-11eb-bf61-12bb97331649.jpg

當(dāng)我們確定clips[0]一定會(huì)被選擇之后,就可以選出第二個(gè)會(huì)被選擇的視頻:

96358988-b322-11eb-bf61-12bb97331649.jpg

我們會(huì)比較所有起點(diǎn)小于clips[0][1]的區(qū)間,根據(jù)貪心策略,它們中終點(diǎn)最大的那個(gè)區(qū)間就是第二個(gè)會(huì)被選中的視頻。

然后可以通過(guò)第二個(gè)視頻區(qū)間貪心選擇出第三個(gè)視頻,以此類推,直到覆蓋區(qū)間[0, T],或者無(wú)法覆蓋返回 -1。

以上就是這道題的解題思路,仔細(xì)想想,這題的核心和前文 貪心算法玩跳躍游戲 寫的跳躍游戲是相同的,如果你能看出這兩者的聯(lián)系,就可以說(shuō)理解貪心算法的奧義了。

代碼實(shí)現(xiàn)

實(shí)現(xiàn)上述思路需要我們用兩個(gè)變量curEnd和nextEnd來(lái)進(jìn)行:

964f3c3e-b322-11eb-bf61-12bb97331649.gif

最終代碼實(shí)現(xiàn)如下:

int videoStitching(int[][] clips, int T) {

if (T == 0) return 0;

// 按起點(diǎn)升序排列,起點(diǎn)相同的降序排列

Arrays.sort(clips, (a, b) -》 {

if (a[0] == b[0]) {

return b[1] - a[1];

}

return a[0] - b[0];

});

// 記錄選擇的短視頻個(gè)數(shù)

int res = 0;

int curEnd = 0, nextEnd = 0;

int i = 0, n = clips.length;

while (i 《 n && clips[i][0] 《= curEnd) {

// 在第 res 個(gè)視頻的區(qū)間內(nèi)貪心選擇下一個(gè)視頻

while (i 《 n && clips[i][0] 《= curEnd) {

nextEnd = Math.max(nextEnd, clips[i][1]);

i++;

}

// 找到下一個(gè)視頻,更新 curEnd

res++;

curEnd = nextEnd;

if (curEnd 》= T) {

// 已經(jīng)可以拼出區(qū)間 [0, T]

return res;

}

}

// 無(wú)法連續(xù)拼出區(qū)間 [0, T]

return -1;

}

這段代碼的時(shí)間復(fù)雜度是多少呢?雖然代碼中有一個(gè)嵌套的 while 循環(huán),但這個(gè)嵌套 while 循環(huán)的時(shí)間復(fù)雜度是O(N)。因?yàn)楫?dāng)i遞增到n時(shí)循環(huán)就會(huì)結(jié)束,所以這段代碼只會(huì)執(zhí)行O(N)次。

但是別忘了我們對(duì)clips數(shù)組進(jìn)行了一次排序,消耗了O(NlogN)的時(shí)間,所以本算法的總時(shí)間復(fù)雜度是O(NlogN)。

原文標(biāo)題:剪視頻剪出一個(gè)貪心算法…

文章出處:【微信公眾號(hào):算法與數(shù)據(jù)結(jié)構(gòu)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 視頻
    +關(guān)注

    關(guān)注

    6

    文章

    1993

    瀏覽量

    74457

原文標(biāo)題:剪視頻剪出一個(gè)貪心算法…

文章出處:【微信號(hào):TheAlgorithm,微信公眾號(hào):算法與數(shù)據(jù)結(jié)構(gòu)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    N9H2x如何將視頻轉(zhuǎn)換為 AVI 文件?

    N9H2x如何將視頻轉(zhuǎn)換為 AVI 文件?
    發(fā)表于 09-01 08:05

    技術(shù)分享 | 迅為RK3568開(kāi)發(fā)板如何將 Linux 板卡虛擬U盤

    技術(shù)分享 | 迅為RK3568開(kāi)發(fā)板如何將 Linux 板卡虛擬U盤
    的頭像 發(fā)表于 06-04 10:57 ?733次閱讀
    技術(shù)分享 | 迅為RK3568開(kāi)發(fā)板<b class='flag-5'>如何將</b> Linux 板卡虛擬<b class='flag-5'>成</b>U盤

    k230如何將yolo分類視頻流推理后的視頻結(jié)果保存到本地?

    請(qǐng)問(wèn)k230如何將yolo分類視頻流推理后的視頻結(jié)果保存到本地?
    發(fā)表于 02-08 08:09

    請(qǐng)問(wèn)ccs4.2如何將采集到的數(shù)據(jù)導(dǎo)出dat文件?

    ccs4.2如何將采集到的數(shù)據(jù)導(dǎo)出dat文件
    發(fā)表于 01-14 08:08

    HarmonyOS NEXT 應(yīng)用開(kāi)發(fā)練習(xí):智能視頻推薦

    看到一個(gè)視頻推薦列表。列表中每個(gè)視頻項(xiàng)都包含一張封面圖片和標(biāo)題。用戶可以通過(guò)滑動(dòng)屏幕上下瀏覽視頻列表。當(dāng)用戶點(diǎn)擊某個(gè)視頻項(xiàng)時(shí),會(huì)彈出一個(gè)T
    發(fā)表于 01-02 16:26

    hdmi是什么電平?hdmi信號(hào)里有幾對(duì)差分還有幾個(gè)單端的,差分的信號(hào)是不是cml電平?

    出來(lái)的cml信號(hào)在還原成hdmi信號(hào),接到顯示器上?,F(xiàn)在有幾個(gè)問(wèn)題: 1,hdmi是什么電平?第一次接觸,hdmi信號(hào)里有幾對(duì)差分還有幾個(gè)單端的,差分的信號(hào)是不是cml電平? 2,如果差分的是cml電平
    發(fā)表于 12-24 06:34

    640x480的視頻數(shù)據(jù)輸入給TVP5158進(jìn)行解碼處理,輸出的是640 x 240的視頻數(shù)據(jù),為什么?

    640 x 480的視頻數(shù)據(jù)輸入給TVP5158進(jìn)行解碼處理,可是輸出的是640 x 240 的視頻數(shù)據(jù),這是什么原因?qū)е碌哪兀?
    發(fā)表于 12-20 07:12

    請(qǐng)問(wèn)如何將腦電數(shù)據(jù)經(jīng)過(guò)數(shù)據(jù)轉(zhuǎn)換器輸出?

    PC機(jī),向USB口輸出,并經(jīng)過(guò)DA轉(zhuǎn)換器后,還原成模擬信號(hào),并讓模擬信號(hào)與外接線圈轉(zhuǎn)接,使之產(chǎn)生腦電場(chǎng),逆向研究原始腦電信號(hào)對(duì)人腦的影響,但是問(wèn)題是:這個(gè)由電腦輸出的數(shù)字信號(hào)如何才能轉(zhuǎn)換成模擬信號(hào)并
    發(fā)表于 12-17 07:02

    OpenAI開(kāi)放Sora視頻生成模型

    升級(jí),準(zhǔn)備迎接廣大用戶的深入探索與廣泛應(yīng)用。 據(jù)官方公告介紹,Sora Turbo作為Sora的升級(jí)版本,具備強(qiáng)大的視頻生成能力。它能夠根據(jù)用戶的文本提示,快速創(chuàng)建出最長(zhǎng)達(dá)20秒的高清視頻片段。更令人驚喜的是,Sora Turb
    的頭像 發(fā)表于 12-10 11:16 ?917次閱讀

    用ADS8866采集方波并用DAC8551還原出來(lái),發(fā)現(xiàn)有200us左右的臺(tái)階,為什么?

    如圖,黃色是原始的輸入進(jìn)ADC的波形,藍(lán)色是DAC輸出的波形,DAC單獨(dú)測(cè)試過(guò)是可以輸出1.6kHz的方波的;本次測(cè)試方法是ADC采集到的電壓通過(guò)mcu算出電壓再發(fā)給DAC,讓DAC還原成原波形,但發(fā)現(xiàn)有200us左右的臺(tái)階,不知道什么原因
    發(fā)表于 11-26 08:19

    基于Arm架構(gòu)的珠峰芯片加速極致視頻體驗(yàn)

    視頻編解碼技術(shù)作為支撐超高清視頻及泛音視頻產(chǎn)業(yè)發(fā)展的基石,其重要性愈發(fā)凸顯。H.264/AVC 是目前廣泛使用的編解碼標(biāo)準(zhǔn),能夠在較低的數(shù)據(jù)速率下提供高質(zhì)量的視頻流,是在線
    的頭像 發(fā)表于 11-01 13:54 ?3612次閱讀
    基于Arm架構(gòu)的珠峰芯片加速極致<b class='flag-5'>視頻</b>體驗(yàn)

    不同高清視頻線接頭類型解析

    高清視頻線是連接顯示器和視頻源(如電腦、游戲機(jī)、DVD播放器等)的線纜,它們負(fù)責(zé)傳輸高質(zhì)量的視頻信號(hào)。隨著技術(shù)的發(fā)展,市場(chǎng)上出現(xiàn)了多種不同類型的高清視頻線接頭,每種都有其特定的用途和優(yōu)
    的頭像 發(fā)表于 10-30 15:30 ?2730次閱讀

    高清視頻線接口類型對(duì)比

    隨著科技的發(fā)展,高清視頻已經(jīng)成為我們?nèi)粘I钪胁豢苫蛉钡囊徊糠?。無(wú)論是家庭娛樂(lè)、商務(wù)演示還是專業(yè)視頻制作,高清視頻的傳輸和顯示都需要高質(zhì)量的視頻線。 HDMI(高清多媒體接口) HDM
    的頭像 發(fā)表于 10-30 14:36 ?2490次閱讀

    AIGC在視頻內(nèi)容制作中的應(yīng)用前景

    AIGC技術(shù)能夠顯著縮短視頻內(nèi)容的制作周期。通過(guò)AI算法,可以快速生成視頻剪輯、特效、字幕和配樂(lè)等,減少人工操作的時(shí)間。例如,在短視頻制作中,AIGC技術(shù)可以自動(dòng)找到最佳剪輯點(diǎn)、裁剪視頻
    的頭像 發(fā)表于 10-25 15:44 ?2508次閱讀

    LCD控制器連接到DM642視頻端口

    電子發(fā)燒友網(wǎng)站提供《LCD控制器連接到DM642視頻端口.pdf》資料免費(fèi)下載
    發(fā)表于 10-17 10:42 ?0次下載
    <b class='flag-5'>將</b>LCD控制器連接到DM642<b class='flag-5'>視頻</b>端口