色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

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

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

二分搜索算法運(yùn)用的框架套路

算法與數(shù)據(jù)結(jié)構(gòu) ? 來源:labuladong ? 作者:labuladong ? 2021-08-25 16:06 ? 次閱讀

我們前文 我作了首詩,保你閉著眼睛也能寫對(duì)二分查找 詳細(xì)介紹了二分搜索的細(xì)節(jié)問題,探討了「搜索一個(gè)元素」,「搜索左側(cè)邊界」,「搜索右側(cè)邊界」這三個(gè)情況,教你如何寫出正確無 bug 的二分搜索算法

但是前文總結(jié)的二分搜索代碼框架僅僅局限于「在有序數(shù)組中搜索指定元素」這個(gè)基本場景,具體的算法問題沒有這么直接,可能你都很難看出這個(gè)問題能夠用到二分搜索。

對(duì)于二分搜索算法在具體問題中的運(yùn)用,前文 二分搜索的運(yùn)用(一) 和前文 二分搜索的運(yùn)用(二) 有過介紹,但是還沒有抽象出來一個(gè)具體的套路框架。

所以本文就來總結(jié)一套二分搜索算法運(yùn)用的框架套路,幫你在遇到二分搜索算法相關(guān)的實(shí)際問題時(shí),能夠有條理地思考分析,步步為營,寫出答案。

警告:本文略長略硬核,建議清醒時(shí)學(xué)習(xí)。

原始的二分搜索代碼

二分搜索的原型就是在「有序數(shù)組」中搜索一個(gè)元素target,返回該元素對(duì)應(yīng)的索引

如果該元素不存在,那可以返回一個(gè)什么特殊值,這種細(xì)節(jié)問題只要微調(diào)算法實(shí)現(xiàn)就可實(shí)現(xiàn)。

還有一個(gè)重要的問題,如果「有序數(shù)組」中存在多個(gè)target元素,那么這些元素肯定挨在一起,這里就涉及到算法應(yīng)該返回最左側(cè)的那個(gè)target元素的索引還是最右側(cè)的那個(gè)target元素的索引,也就是所謂的「搜索左側(cè)邊界」和「搜索右側(cè)邊界」,這個(gè)也可以通過微調(diào)算法的代碼來實(shí)現(xiàn)。

我們前文 二分搜索算法框架詳解 詳細(xì)探討了上述問題,對(duì)這塊還不清楚的讀者建議復(fù)習(xí)前文,已經(jīng)搞清楚基本二分搜索算法的讀者可以繼續(xù)看下去。

在具體的算法問題中,常用到的是「搜索左側(cè)邊界」和「搜索右側(cè)邊界」這兩種場景,很少有讓你單獨(dú)「搜索一個(gè)元素」。

因?yàn)樗惴}一般都讓你求最值,比如前文 二分搜索的運(yùn)用(一) 中說的例題讓你求吃香蕉的「最小速度」,讓你求輪船的「最低運(yùn)載能力」,前文 二分搜索的運(yùn)用(二) 講的題就更魔幻了,讓你使每個(gè)子數(shù)組之和的「最大值最小」。

求最值的過程,必然是搜索一個(gè)邊界的過程,所以后面我們就詳細(xì)分析一下這兩種搜索邊界的二分算法代碼。

「搜索左側(cè)邊界」的二分搜索算法的具體代碼實(shí)現(xiàn)如下:

// 搜索左側(cè)邊界int left_bound(int[] nums, int target) {

if (nums.length == 0) return -1;

int left = 0, right = nums.length;

while (left 《 right) {

int mid = left + (right - left) / 2;

if (nums[mid] == target) {

// 當(dāng)找到 target 時(shí),收縮右側(cè)邊界

right = mid;

} else if (nums[mid] 《 target) {

left = mid + 1;

} else if (nums[mid] 》 target) {

right = mid;

}

}

return left;

}

假設(shè)輸入的數(shù)組nums = [1,2,3,3,3,5,7],想搜索的元素target = 3,那么算法就會(huì)返回索引 2。

「搜索右側(cè)邊界」的二分搜索算法的具體代碼實(shí)現(xiàn)如下:

// 搜索右側(cè)邊界int right_bound(int[] nums, int target) {

if (nums.length == 0) return -1;

int left = 0, right = nums.length;

while (left 《 right) {

int mid = left + (right - left) / 2;

if (nums[mid] == target) {

// 當(dāng)找到 target 時(shí),收縮左側(cè)邊界

left = mid + 1;

} else if (nums[mid] 《 target) {

left = mid + 1;

} else if (nums[mid] 》 target) {

right = mid;

}

}

return left - 1;

}

輸入同上,那么算法就會(huì)返回索引 4:

好,上述內(nèi)容都屬于復(fù)習(xí),我想讀到這里的讀者應(yīng)該都能理解。記住上述的圖像,所有能夠抽象出上述圖像的問題,都可以使用二分搜索解決。

二分搜索問題的泛化

什么問題可以運(yùn)用二分搜索算法技巧?

首先,你要從題目中抽象出一個(gè)自變量x,一個(gè)關(guān)于x的函數(shù)f(x),以及一個(gè)目標(biāo)值target。

同時(shí),x, f(x), target還要滿足以下條件:

1、f(x)必須是在x上的單調(diào)函數(shù)(單調(diào)增單調(diào)減都可以)。

2、題目是讓你計(jì)算滿足約束條件f(x) == target時(shí)的x的值。

上述規(guī)則聽起來有點(diǎn)抽象,來舉個(gè)具體的例子:

給你一個(gè)升序排列的有序數(shù)組nums以及一個(gè)目標(biāo)元素target,請(qǐng)你計(jì)算target在數(shù)組中的索引位置,如果有多個(gè)目標(biāo)元素,返回最小的索引。

這就是「搜索左側(cè)邊界」這個(gè)基本題型,解法代碼之前都寫了,但這里面x, f(x), target分別是什么呢?

我們可以把數(shù)組中元素的索引認(rèn)為是自變量x,函數(shù)關(guān)系f(x)就可以這樣設(shè)定:

// 函數(shù) f(x) 是關(guān)于自變量 x 的單調(diào)遞增函數(shù)// 入?yún)?nums 是不會(huì)改變的,所以可以忽略,不算自變量int f(int x, int[] nums) {

return nums[x];

}

其實(shí)這個(gè)函數(shù)f就是在訪問數(shù)組nums,因?yàn)轭}目給我們的數(shù)組nums是升序排列的,所以函數(shù)f(x)就是在x上單調(diào)遞增的函數(shù)。

最后,題目讓我們求什么來著?是不是讓我們計(jì)算元素target的最左側(cè)索引?

是不是就相當(dāng)于在問我們「滿足f(x) == target的x的最小值是多少」?

如果遇到一個(gè)算法問題,能夠把它抽象成這幅圖,就可以對(duì)它運(yùn)用二分搜索算法。

算法代碼如下:

// 函數(shù) f 是關(guān)于自變量 x 的單調(diào)遞增函數(shù)int f(int x, int[] nums) {

return nums[x];

}

int left_bound(int[] nums, int target) {

if (nums.length == 0) return -1;

int left = 0, right = nums.length;

while (left 《 right) {

int mid = left + (right - left) / 2;

if (f(mid, nums) == target) {

// 當(dāng)找到 target 時(shí),收縮右側(cè)邊界

right = mid;

} else if (f(mid, nums) 《 target) {

left = mid + 1;

} else if (f(mid, nums) 》 target) {

right = mid;

}

}

return left;

}

這段代碼把之前的代碼微調(diào)了一下,把直接訪問nums[mid]套了一層函數(shù)f,其實(shí)就是多此一舉,但是,這樣能抽象出二分搜索思想在具體算法問題中的框架。

運(yùn)用二分搜索的套路框架

想要運(yùn)用二分搜索解決具體的算法問題,可以從以下代碼框架著手思考:

// 函數(shù) f 是關(guān)于自變量 x 的單調(diào)函數(shù)int f(int x) {

// ...

}

// 主函數(shù),在 f(x) == target 的約束下求 x 的最值int solution(int[] nums, int target) {

if (nums.length == 0) return -1;

// 問自己:自變量 x 的最小值是多少?

int left = ...;

// 問自己:自變量 x 的最大值是多少?

int right = ... + 1;

while (left 《 right) {

int mid = left + (right - left) / 2;

if (f(mid) == target) {

// 問自己:題目是求左邊界還是右邊界?

// ...

} else if (f(mid) 《 target) {

// 問自己:怎么讓 f(x) 大一點(diǎn)?

// ...

} else if (f(mid) 》 target) {

// 問自己:怎么讓 f(x) 小一點(diǎn)?

// ...

}

}

return left;

}

具體來說,想要用二分搜索算法解決問題,分為以下幾步:

1、確定x, f(x), target分別是什么,并寫出函數(shù)f的代碼。

2、找到x的取值范圍作為二分搜索的搜索區(qū)間,初始化left和right變量。

3、根據(jù)題目的要求,確定應(yīng)該使用搜索左側(cè)還是搜索右側(cè)的二分搜索算法,寫出解法代碼。

下面用幾道例題來講解這個(gè)流程。

例題一、珂珂吃香蕉

珂珂每小時(shí)最多只能吃一堆香蕉,如果吃不完的話留到下一小時(shí)再吃;如果吃完了這一堆還有胃口,也只會(huì)等到下一小時(shí)才會(huì)吃下一堆。

他想在警衛(wèi)回來之前吃完所有香蕉,讓我們確定吃香蕉的最小速度K。函數(shù)簽名如下:

int minEatingSpeed(int[] piles, int H);

那么,對(duì)于這道題,如何運(yùn)用剛才總結(jié)的套路,寫出二分搜索解法代碼?

按步驟思考即可:

1、確定x, f(x), target分別是什么,并寫出函數(shù)f的代碼。

自變量x是什么呢?回憶之前的函數(shù)圖像,二分搜索的本質(zhì)就是在搜索自變量。

所以,題目讓求什么,就把什么設(shè)為自變量,珂珂吃香蕉的速度就是自變量x。

那么,在x上單調(diào)的函數(shù)關(guān)系f(x)是什么?

顯然,吃香蕉的速度越快,吃完所有香蕉堆所需的時(shí)間就越少,速度和時(shí)間就是一個(gè)單調(diào)函數(shù)關(guān)系。

所以,f(x)函數(shù)就可以這樣定義:

若吃香蕉的速度為x根/小時(shí),則需要f(x)小時(shí)吃完所有香蕉。

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

// 定義:速度為 x 時(shí),需要 f(x) 小時(shí)吃完所有香蕉// f(x) 隨著 x 的增加單調(diào)遞減int f(int[] piles, int x) {

int hours = 0;

for (int i = 0; i 《 piles.length; i++) {

hours += piles[i] / x;

if (piles[i] % x 》 0) {

hours++;

}

}

return hours;

}

target就很明顯了,吃香蕉的時(shí)間限制H自然就是target,是對(duì)f(x)返回值的最大約束。

2、找到x的取值范圍作為二分搜索的搜索區(qū)間,初始化left和right變量。

珂珂吃香蕉的速度最小是多少?多大是多少?

顯然,最小速度應(yīng)該是 1,最大速度是piles數(shù)組中元素的最大值,因?yàn)槊啃r(shí)最多吃一堆香蕉,胃口再大也白搭嘛。

這里可以有兩種選擇,要么你用一個(gè) for 循環(huán)去遍歷piles數(shù)組,計(jì)算最大值,要么你看題目給的約束,piles中的元素取值范圍是多少,然后給right初始化一個(gè)取值范圍之外的值。

我選擇第二種,題目說了1 《= piles[i] 《= 10^9,那么我就可以確定二分搜索的區(qū)間邊界:

public int minEatingSpeed(int[] piles, int H) {

int left = 1;

// 注意,right 是開區(qū)間,所以再加一

int right = 1000000000 + 1;

// ...

}

3、根據(jù)題目的要求,確定應(yīng)該使用搜索左側(cè)還是搜索右側(cè)的二分搜索算法,寫出解法代碼。

現(xiàn)在我們確定了自變量x是吃香蕉的速度,f(x)是單調(diào)遞減的函數(shù),target就是吃香蕉的時(shí)間限制H,題目要我們計(jì)算最小速度,也就是x要盡可能小:

這就是搜索左側(cè)邊界的二分搜索嘛,不過注意f(x)是單調(diào)遞減的,不要閉眼睛套框架,需要結(jié)合上圖進(jìn)行思考,寫出代碼:

public int minEatingSpeed(int[] piles, int H) {

int left = 1;

int right = 1000000000 + 1;

while (left 《 right) {

int mid = left + (right - left) / 2;

if (f(piles, mid) == H) {

// 搜索左側(cè)邊界,則需要收縮右側(cè)邊界

right = mid;

} else if (f(piles, mid) 《 H) {

// 需要讓 f(x) 的返回值大一些

right = mid;

} else if (f(piles, mid) 》 H) {

// 需要讓 f(x) 的返回值小一些

left = mid + 1;

}

}

return left;

}

PS:關(guān)于mid是否需要 + 1 的問題,前文 二分搜索算法詳解 進(jìn)行了詳細(xì)分析,這里不展開了。

至此,這道題就解決了,現(xiàn)在可以把多余的 if 分支合并一下,最終代碼如下:

public int minEatingSpeed(int[] piles, int H) {

int left = 1;

int right = 1000000000 + 1;

while (left 《 right) {

int mid = left + (right - left) / 2;

if (f(piles, mid) 《= H) {

right = mid;

} else {

left = mid + 1;

}

}

return left;

}

// f(x) 隨著 x 的增加單調(diào)遞減int f(int[] piles, int x) {

// 見上文

}

PS:我們代碼框架中多余的 if 分支主要是幫助理解的,寫出正確解法后建議合并多余的分支,可以提高算法運(yùn)行的效率。

例題二、運(yùn)送貨物

再看看力扣第 1011 題「在 D 天內(nèi)送達(dá)包裹的能力」:

要在D天內(nèi)按順序運(yùn)輸完所有貨物,貨物不可分割,如何確定運(yùn)輸?shù)淖钚≥d重呢?

函數(shù)簽名如下:

int shipWithinDays(int[] weights, int days);

和上一道題一樣的,我們按照流程來就行:

1、確定x, f(x), target分別是什么,并寫出函數(shù)f的代碼。

題目問什么,什么就是自變量,也就是說船的運(yùn)載能力就是自變量x。

運(yùn)輸天數(shù)和運(yùn)載能力成反比,所以可以讓f(x)計(jì)算x的運(yùn)載能力下需要的運(yùn)輸天數(shù),那么f(x)是單調(diào)遞減的。

函數(shù)f(x)的實(shí)現(xiàn)如下:

// 定義:當(dāng)運(yùn)載能力為 x 時(shí),需要 f(x) 天運(yùn)完所有貨物// f(x) 隨著 x 的增加單調(diào)遞減int f(int[] weights, int x) {

int days = 0;

for (int i = 0; i 《 weights.length; ) {

// 盡可能多裝貨物

int cap = x;

while (i 《 weights.length) {

if (cap 《 weights[i]) break;

else cap -= weights[i];

i++;

}

days++;

}

return days;

}

對(duì)于這道題,target顯然就是運(yùn)輸天數(shù)D,我們要在f(x) == D的約束下,算出船的最小載重。

2、找到x的取值范圍作為二分搜索的搜索區(qū)間,初始化left和right變量。

船的最小載重是多少?最大載重是多少?

顯然,船的最小載重應(yīng)該是weights數(shù)組中元素的最大值,因?yàn)槊看沃辽俚醚b一件貨物走,不能說裝不下嘛。

最大載重顯然就是weights數(shù)組所有元素之和,也就是一次把所有貨物都裝走。

這樣就確定了搜索區(qū)間[left, right):

public int shipWithinDays(int[] weights, int days) {

int left = 0;

// 注意,right 是開區(qū)間,所以額外加一

int right = 1;

for (int w : weights) {

left = Math.max(left, w);

right += w;

}

// ...

}

3、需要根據(jù)題目的要求,確定應(yīng)該使用搜索左側(cè)還是搜索右側(cè)的二分搜索算法,寫出解法代碼。

現(xiàn)在我們確定了自變量x是船的載重能力,f(x)是單調(diào)遞減的函數(shù),target就是運(yùn)輸總天數(shù)限制D,題目要我們計(jì)算船的最小載重,也就是x要盡可能小:

這就是搜索左側(cè)邊界的二分搜索嘛,結(jié)合上圖就可寫出二分搜索代碼:

public int shipWithinDays(int[] weights, int days) {

int left = 0;

// 注意,right 是開區(qū)間,所以額外加一

int right = 1;

for (int w : weights) {

left = Math.max(left, w);

right += w;

}

while (left 《 right) {

int mid = left + (right - left) / 2;

if (f(weights, mid) == days) {

// 搜索左側(cè)邊界,則需要收縮右側(cè)邊界

right = mid;

} else if (f(weights, mid) 《 days) {

// 需要讓 f(x) 的返回值大一些

right = mid;

} else if (f(weights, mid) 》 days) {

// 需要讓 f(x) 的返回值小一些

left = mid + 1;

}

}

return left;

}

到這里,這道題的解法也寫出來了,我們合并一下多余的 if 分支,提高代碼運(yùn)行速度,最終代碼如下:

public int shipWithinDays(int[] weights, int days) {

int left = 0;

int right = 1;

for (int w : weights) {

left = Math.max(left, w);

right += w;

}

while (left 《 right) {

int mid = left + (right - left) / 2;

if (f(weights, mid) 《= days) {

right = mid;

} else {

left = mid + 1;

}

}

return left;

}

int f(int[] weights, int x) {

// 見上文

}

本文就到這里,總結(jié)來說,如果發(fā)現(xiàn)題目中存在單調(diào)關(guān)系,就可以嘗試使用二分搜索的思路來解決。搞清楚單調(diào)性和二分搜索的種類,通過分析和畫圖,就能夠?qū)懗鲎罱K的代碼。

責(zé)任編輯:haq

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

    關(guān)注

    0

    文章

    403

    瀏覽量

    17653
  • 搜索
    +關(guān)注

    關(guān)注

    0

    文章

    70

    瀏覽量

    16733
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4862

    瀏覽量

    69729

原文標(biāo)題:我寫了一個(gè)套路,助你隨心所欲運(yùn)用二分搜索

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

收藏 0人收藏

    評(píng)論

    相關(guān)推薦

    《AI Agent 應(yīng)用與項(xiàng)目實(shí)戰(zhàn)》閱讀心得2——客服機(jī)器人、AutoGen框架 、生成式代理

    和反應(yīng)模塊則實(shí)現(xiàn)了基于目標(biāo)的行為規(guī)劃,采用蒙特卡洛樹搜索算法對(duì)可能的行為序列進(jìn)行評(píng)估和選擇。在沙盒環(huán)境的實(shí)現(xiàn)上,項(xiàng)目采用了事件驅(qū)動(dòng)的架構(gòu)設(shè)計(jì),通過細(xì)粒度的事件系統(tǒng)來模擬環(huán)境變化和代理間的互動(dòng)。評(píng)估體系
    發(fā)表于 02-25 21:59

    百度搜索與文心智能體平臺(tái)接入DeepSeek及文心大模型深度搜索

    夠免費(fèi)使用DeepSeek和文心大模型的深度搜索功能。這一功能不僅融合了先進(jìn)的搜索算法,還借助文心大模型的強(qiáng)大能力,實(shí)現(xiàn)了對(duì)信息的深度挖掘和精準(zhǔn)匹配。用戶在進(jìn)行搜索時(shí),將能夠獲得更加全面、準(zhǔn)確的結(jié)果,滿足多樣化的需求。 同時(shí),文
    的頭像 發(fā)表于 02-17 09:14 ?352次閱讀

    DAC3482設(shè)置DACCLK時(shí),到底需要設(shè)置成和DATACLK相等還是二分之一的關(guān)系?

    =DACCLK時(shí)則可以看到報(bào)警寄存器先為不沖突,一段時(shí)間后變?yōu)?-away,再過一段時(shí)間變?yōu)?-away,再過一段時(shí)間變?yōu)閒ifo-collision,依次循環(huán),請(qǐng)問我設(shè)置DACCLK時(shí)到底需要設(shè)置成和DATACLK相等還是二分之一的關(guān)系????求解救啊
    發(fā)表于 01-08 07:24

    ChatGPT新增實(shí)時(shí)搜索與高級(jí)語音功能

    。OpenAI對(duì)搜索算法進(jìn)行了深度優(yōu)化,使得ChatGPT能夠在用戶提出問題后,迅速獲取到分鐘級(jí)別的最新信息,包括股票、新聞等。這一功能的加入,極大地滿足了用戶對(duì)即時(shí)數(shù)據(jù)的需求,使得ChatGPT在各類應(yīng)用場景中更加得心應(yīng)手。 同時(shí),ChatGPT還推出了高級(jí)語音功能。在高級(jí)語
    的頭像 發(fā)表于 12-17 14:08 ?427次閱讀

    為什么DAC7811輸出電壓是理論值的二分之一?

    為什么輸出電壓是理論值的二分之一?
    發(fā)表于 12-12 07:58

    AFE5818的幀時(shí)鐘FCLK不等于clkin,是它的二分頻,請(qǐng)問是為什么?

    AFE5818的幀時(shí)鐘FCLK不等于clkin,是它的二分頻,請(qǐng)問是為什么?
    發(fā)表于 11-18 08:34

    HarmonyOS NEXT應(yīng)用元服務(wù)開發(fā)Intents Kit(意圖框架服務(wù))本地搜索方案概述

    一、概述 本地搜索是在HarmonyOS歸一化搜索特性,開發(fā)者將應(yīng)用/元服務(wù)內(nèi)的功能和內(nèi)容通過意圖框架共享到HarmonyOS,即可實(shí)現(xiàn)“一步搜索,內(nèi)容直達(dá)”。
    發(fā)表于 11-06 10:59

    UHF RFID自適應(yīng)射頻干擾對(duì)消技術(shù)

    。針對(duì)目前有源干擾對(duì)消技術(shù)存在的抑制效果和實(shí)時(shí)性較差的缺點(diǎn)在分析有源干擾對(duì)消原理的基礎(chǔ)上提出了基于改進(jìn)Powell 搜索算法的自適應(yīng)射頻干擾對(duì)消方案。設(shè)計(jì)了有源對(duì)消電路通過改進(jìn)的Powell 最優(yōu)值搜索算法實(shí)現(xiàn)電路控制參數(shù)的自適應(yīng)調(diào)節(jié)使電路工作在最優(yōu)的抑制狀態(tài)。測試結(jié)果表
    發(fā)表于 11-05 10:22 ?1次下載

    怎樣使用模擬電路實(shí)現(xiàn)信號(hào)的二分頻呢?

    請(qǐng)問怎樣使用模擬電路實(shí)現(xiàn)信號(hào)的二分頻呢?
    發(fā)表于 09-10 08:06

    電商搜索革命:大模型如何重塑購物體驗(yàn)?

    自我介紹:京東零售搜推算法算法工程師,專注于大模型技術(shù)以及在 AI 助手搜推等領(lǐng)域的應(yīng)用探索和實(shí)踐。在 AI 助手,NLP 和搜索領(lǐng)域有十多年研發(fā)實(shí)踐經(jīng)驗(yàn),在 AI/NLP 領(lǐng)域申請(qǐng)超過 15
    的頭像 發(fā)表于 08-19 15:09 ?428次閱讀

    FPGA-5G通信算法的基本套路

    ? 一個(gè)完整的通信系統(tǒng),是十龐大的,沒有幾百上千人,在短時(shí)間內(nèi)是做不好的。本文僅僅針對(duì)5G NR中的基帶算法部分,做一個(gè)簡單梳理。 對(duì)于5G通信系統(tǒng), 站在基站側(cè)的角度,那么下行方向的整個(gè)處理
    發(fā)表于 08-15 17:34

    中國AI長卷():框架立基

    從AI框架可以看到,更強(qiáng)的產(chǎn)業(yè)化能力,就是中國AI的底色
    的頭像 發(fā)表于 07-24 12:27 ?2743次閱讀
    中國AI長卷(<b class='flag-5'>二</b>):<b class='flag-5'>框架</b>立基

    AI算法/模型/框架/模型庫的含義、區(qū)別與聯(lián)系

    在人工智能(Artificial Intelligence,簡稱AI)的廣闊領(lǐng)域中,算法、模型、框架和模型庫是構(gòu)成其技術(shù)生態(tài)的重要基石。它們各自承擔(dān)著不同的角色,但又緊密相連,共同推動(dòng)著AI技術(shù)的不斷發(fā)展。以下是對(duì)這四者含義、區(qū)別與聯(lián)系的詳細(xì)闡述。
    的頭像 發(fā)表于 07-17 17:11 ?6466次閱讀

    如何用C語言實(shí)現(xiàn)高效查找(二分法)

    今天給分享一下使用C語言實(shí)現(xiàn)二分算法,主要包含以下幾部分內(nèi)容:二分查找算法介紹二分查找算法使用場
    的頭像 發(fā)表于 06-04 08:04 ?1462次閱讀
    如何用C語言實(shí)現(xiàn)高效查找(<b class='flag-5'>二分</b>法)

    揭秘谷歌搜索算法工作原理,與官方聲明存在矛盾

    有著十多年搜索引擎優(yōu)化經(jīng)驗(yàn)的蘭德·菲什金,近日透露他收到一份長達(dá)2500頁的文件,據(jù)稱這是對(duì)谷歌搜索算法工作原理的真實(shí)揭示,而非谷歌官方所聲稱的那樣。
    的頭像 發(fā)表于 05-29 16:00 ?751次閱讀

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品
    主站蜘蛛池模板: xxxxxl荷兰 | 日本xxxx8888 | 国产精品日本无码久久一老A | 在线免费国产 | 麻豆第一区MV免费观看网站 | 毛片亚洲毛片亚洲毛片 | 日韩插啊免费视频在线观看 | 中国字字幕在线播放2019 | 日本后进式猛烈xx00动态图 | 日韩欧美一区二区三区在线视频 | 色百度网址大全 | 欧美日韩精品一区二区三区四区 | 狠狠插综合 | 亚洲 在线 日韩 欧美 | 欧美亚洲日韩在线在线影院 | 日韩高清在线亚洲专区 | 久久中文字幕人妻熟AV女蜜柚M | WWW国产精品人妻一二三区 | 亚洲午夜久久久久久久久电影网 | 日韩亚洲视频一区二区三区 | 国产免费人成在线视频有码 | 久章草一区二区 | 巨大乳hdbbw| 一本道综合久久免费 | 2021国产精品视频 | 扒开屁股眼往里面夹东西 | 一起碰一起噜一起草视频 | 亚洲国产日韩a精品乱码 | 色综合欧美色综合七久久 | 午夜福到在线2019 | 伊人久在线 | 亚洲精品久久久久69影院 | 国产又黄又硬又粗 | 青草国产超碰人人添人人碱 | 成人无码国产AV免费看 | 亚洲黄色免费在线观看 | 亚洲麻豆精品成人A在线观看 | 亚洲春色AV无码专区456 | 樱桃视频高清免费观看在线播放 | 日韩欧美一区二区三区在线 | 国产精品第九页 |