欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

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

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

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

Git引出一個(gè)經(jīng)典的算法問(wèn)題:最近公共祖先

算法與數(shù)據(jù)結(jié)構(gòu) ? 來(lái)源:labuladong ? 作者:算法與數(shù)據(jù)結(jié)構(gòu) ? 2022-04-21 15:28 ? 次閱讀

如果說(shuō)筆試的時(shí)候經(jīng)常遇到各種動(dòng)歸回溯的騷操作,那么面試會(huì)傾向于一些比較經(jīng)典的問(wèn)題,難度不算大,而且也比較實(shí)用。

本文就用 Git 引出一個(gè)經(jīng)典的算法問(wèn)題:最近公共祖先(Lowest Common Ancestor,簡(jiǎn)稱 LCA)。

git pull這個(gè)命令我們經(jīng)常會(huì)用,它默認(rèn)是使用merge方式將遠(yuǎn)端別人的修改拉到本地;如果帶上參數(shù)git pull -r,就會(huì)使用rebase的方式將遠(yuǎn)端修改拉到本地。

這二者最直觀的區(qū)別就是:merge方式合并的分支會(huì)看到很多「分叉」,而rebase方式合并的分支就是一條直線。但無(wú)論哪種方式,如果存在沖突,Git 都會(huì)檢測(cè)出來(lái)并讓你手動(dòng)解決沖突。

那么問(wèn)題來(lái)了,Git 是如何合并兩條分支并檢測(cè)沖突的呢?

rebase命令為例,比如下圖的情況,我站在dev分支執(zhí)行git rebase master,然后dev就會(huì)接到master分支之上:

4c47f97c-bf93-11ec-9e50-dac502259ad0.jpg

這個(gè)過(guò)程中,Git 是這么做的:

首先,找到這兩條分支的最近公共祖先LCA,然后從master節(jié)點(diǎn)開始,重演LCAdevcommit的修改,如果這些修改和LCAmastercommit有沖突,就會(huì)提示你手動(dòng)解決沖突,最后的結(jié)果就是把dev的分支完全接到master上面。

那么,Git 是如何找到兩條不同分支的最近公共祖先的呢?這就是一個(gè)經(jīng)典的算法問(wèn)題了,下面我來(lái)由淺入深講一講。

尋找一個(gè)元素

先不管最近公共祖先問(wèn)題,我請(qǐng)你實(shí)現(xiàn)一個(gè)簡(jiǎn)單的算法:

給你輸入一棵沒(méi)有重復(fù)元素的二叉樹根節(jié)點(diǎn)root和一個(gè)目標(biāo)值val,請(qǐng)你寫一個(gè)函數(shù)尋找樹中值為val的節(jié)點(diǎn)。

函數(shù)簽名如下:

TreeNodefind(TreeNoderoot,intval);

這個(gè)函數(shù)應(yīng)該很容易實(shí)現(xiàn)對(duì)吧,比如我這樣寫代碼:

//定義:在以 root 為根的二叉樹中尋找值為 val 的節(jié)點(diǎn)
TreeNodefind(TreeNoderoot,intval){
//basecase
if(root==null){
returnnull;
}
//看看root.val是不是要找的
if(root.val==val){
returnroot;
}
//root不是目標(biāo)節(jié)點(diǎn),那就去左子樹找
TreeNodeleft=find(root.left,val);
if(left!=null){
returnleft;
}
//左子樹找不著,那就去右子樹找
TreeNoderight=find(root.right,val);
if(right!=null){
returnright;
}
//實(shí)在找不到了
returnnull;
}

這段代碼應(yīng)該不用我多解釋了,但我基于這段代碼做一些簡(jiǎn)單的改寫,請(qǐng)你分析一下我的改動(dòng)會(huì)造成什么影響。

PS:如果你沒(méi)讀過(guò)前文東哥帶你刷二叉樹(綱領(lǐng)篇),強(qiáng)烈建議閱讀一下,理解二叉樹前中后序遍歷的奧義。

首先,我修改一下 return 的位置:

TreeNodefind(TreeNoderoot,intval){
if(root==null){
returnnull;
}
//前序位置
if(root.val==val){
returnroot;
}
//root不是目標(biāo)節(jié)點(diǎn),去左右子樹尋找
TreeNodeleft=find(root.left,val);
TreeNoderight=find(root.right,val);
//看看哪邊找到了
returnleft!=null?left:right;
}

這段代碼也可以達(dá)到目的,但是實(shí)際運(yùn)行的效率會(huì)低一些,原因也很簡(jiǎn)單,如果你能夠在左子樹找到目標(biāo)節(jié)點(diǎn),還有沒(méi)有必要去右子樹找了?沒(méi)有必要。但這段代碼還是會(huì)去右子樹找一圈,所以效率相對(duì)差一些。

更進(jìn)一步,我把對(duì)root.val的判斷從前序位置移動(dòng)到后序位置:

TreeNodefind(TreeNoderoot,intval){
if(root==null){
returnnull;
}
//先去左右子樹尋找
TreeNodeleft=find(root.left,val);
TreeNoderight=find(root.right,val);
//后序位置,看看root是不是目標(biāo)節(jié)點(diǎn)
if(root.val==val){
returnroot;
}
//root不是目標(biāo)節(jié)點(diǎn),再去看看哪邊的子樹找到了
returnleft!=null?left:right;
}

這段代碼相當(dāng)于你先去左右子樹找,然后才檢查root,依然可以到達(dá)目的,但是效率會(huì)進(jìn)一步下降。因?yàn)檫@種寫法必然會(huì)遍歷二叉樹的每一個(gè)節(jié)點(diǎn)

對(duì)于之前的解法,你在前序位置就檢查root,如果輸入的二叉樹根節(jié)點(diǎn)的值恰好就是目標(biāo)值val,那么函數(shù)直接結(jié)束了,其他的節(jié)點(diǎn)根本不用搜索。

但如果你在后序位置判斷,那么就算根節(jié)點(diǎn)就是目標(biāo)節(jié)點(diǎn),你也要去左右子樹遍歷完所有節(jié)點(diǎn)才能判斷出來(lái)。

最后,我再改一下題目,現(xiàn)在不讓你找值為val的節(jié)點(diǎn),而是尋找值為val1val2的節(jié)點(diǎn),函數(shù)簽名如下:

TreeNodefind(TreeNoderoot,intval1,intval2);

這和我們第一次實(shí)現(xiàn)的find函數(shù)基本上是一樣的,而且你應(yīng)該知道可以有多種寫法,我選擇這樣寫代碼:

//定義:在以 root 為根的二叉樹中尋找值為 val1 或 val2 的節(jié)點(diǎn)
TreeNodefind(TreeNoderoot,intval1,intval2){
//basecase
if(root==null){
returnnull;
}
//前序位置,看看root是不是目標(biāo)值
if(root.val==val1||root.val==val2){
returnroot;
}
//去左右子樹尋找
TreeNodeleft=find(root.left,val1,val2);
TreeNoderight=find(root.right,val1,val2);
//后序位置,已經(jīng)知道左右子樹是否存在目標(biāo)值

returnleft!=null?left:right;
}

為什么要寫這樣一個(gè)奇怪的find函數(shù)呢?因?yàn)樽罱沧嫦认盗袉?wèn)題的解法都是把這個(gè)函數(shù)作為框架的

下面一道一道題目來(lái)看。

秒殺五道題目

先來(lái)看看力扣第 236 題「二叉樹的最近公共祖先」:

給你輸入一棵不含重復(fù)值的二叉樹,以及存在于樹中的兩個(gè)節(jié)點(diǎn)pq,請(qǐng)你計(jì)算pq的最近公共祖先節(jié)點(diǎn)。

PS:后文我用LCA(Lowest Common Ancestor)作為最近公共祖先節(jié)點(diǎn)的縮寫。

比如輸入這樣一棵二叉樹:

4c5c3be4-bf93-11ec-9e50-dac502259ad0.jpg

如果p是節(jié)點(diǎn)6q是節(jié)點(diǎn)7,那么它倆的LCA就是節(jié)點(diǎn)5

4c7876f6-bf93-11ec-9e50-dac502259ad0.jpg

當(dāng)然,pq本身也可能是LCA,比如這種情況q本身就是LCA節(jié)點(diǎn):

4c8e9db4-bf93-11ec-9e50-dac502259ad0.jpg

兩個(gè)節(jié)點(diǎn)的最近公共祖先其實(shí)就是這兩個(gè)節(jié)點(diǎn)向根節(jié)點(diǎn)的「延長(zhǎng)線」的交匯點(diǎn),那么對(duì)于任意一個(gè)節(jié)點(diǎn),它怎么才能知道自己是不是pq的最近公共祖先?

如果一個(gè)節(jié)點(diǎn)能夠在它的左右子樹中分別找到pq,則該節(jié)點(diǎn)為LCA節(jié)點(diǎn)。

這就要用到之前實(shí)現(xiàn)的find函數(shù)了,只需在后序位置添加一個(gè)判斷邏輯,即可改造成尋找最近公共祖先的解法代碼:

TreeNodelowestCommonAncestor(TreeNoderoot,TreeNodep,TreeNodeq){
returnfind(root,p.val,q.val);
}

//在二叉樹中尋找val1和val2的最近公共祖先節(jié)點(diǎn)
TreeNodefind(TreeNoderoot,intval1,intval2){
if(root==null){
returnnull;
}
//前序位置
if(root.val==val1||root.val==val2){
//如果遇到目標(biāo)值,直接返回
returnroot;
}
TreeNodeleft=find(root.left,val1,val2);
TreeNoderight=find(root.right,val1,val2);
//后序位置,已經(jīng)知道左右子樹是否存在目標(biāo)值
if(left!=null&&right!=null){
//當(dāng)前節(jié)點(diǎn)是LCA節(jié)點(diǎn)
returnroot;
}

returnleft!=null?left:right;
}

find函數(shù)的后序位置,如果發(fā)現(xiàn)leftright都非空,就說(shuō)明當(dāng)前節(jié)點(diǎn)是LCA節(jié)點(diǎn),即解決了第一種情況:

4c7876f6-bf93-11ec-9e50-dac502259ad0.jpg

find函數(shù)的前序位置,如果找到一個(gè)值為val1val2的節(jié)點(diǎn)則直接返回,恰好解決了第二種情況:

4c8e9db4-bf93-11ec-9e50-dac502259ad0.jpg

因?yàn)轭}目說(shuō)了pq一定存在于二叉樹中(這點(diǎn)很重要),所以即便我們遇到q就直接返回,根本沒(méi)遍歷到p,也依然可以斷定pq底下,q就是LCA節(jié)點(diǎn)。

這樣,標(biāo)準(zhǔn)的最近公共祖先問(wèn)題就解決了,接下來(lái)看看這個(gè)題目有什么變體。

比如力扣第 1676 題「二叉樹的最近公共祖先 IV」:

依然給你輸入一棵不含重復(fù)值的二叉樹,但這次不是給你輸入pq兩個(gè)節(jié)點(diǎn)了,而是給你輸入一個(gè)包含若干節(jié)點(diǎn)的列表nodes(這些節(jié)點(diǎn)都存在于二叉樹中),讓你算這些節(jié)點(diǎn)的最近公共祖先。

函數(shù)簽名如下:

TreeNodelowestCommonAncestor(TreeNoderoot,TreeNode[]nodes);

比如還是這棵二叉樹:

4c5c3be4-bf93-11ec-9e50-dac502259ad0.jpg

輸入nodes = [7,4,6],那么函數(shù)應(yīng)該返回節(jié)點(diǎn)5。

看起來(lái)怪嚇人的,實(shí)則解法邏輯是一樣的,把剛才的代碼邏輯稍加改造即可解決這道題:

TreeNodelowestCommonAncestor(TreeNoderoot,TreeNode[]nodes){
//將列表轉(zhuǎn)化成哈希集合,便于判斷元素是否存在
HashSetvalues=newHashSet<>();
for(TreeNodenode:nodes){
values.add(node.val);
}

returnfind(root,values);
}

//在二叉樹中尋找values的最近公共祖先節(jié)點(diǎn)
TreeNodefind(TreeNoderoot,HashSetvalues){
if(root==null){
returnnull;
}
//前序位置
if(values.contains(root.val)){
returnroot;
}

TreeNodeleft=find(root.left,values);
TreeNoderight=find(root.right,values);
//后序位置,已經(jīng)知道左右子樹是否存在目標(biāo)值
if(left!=null&&right!=null){
//當(dāng)前節(jié)點(diǎn)是LCA節(jié)點(diǎn)
returnroot;
}

returnleft!=null?left:right;
}

有剛才的鋪墊,你類比一下應(yīng)該不難理解這個(gè)解法。

不過(guò)需要注意的是,這兩道題的題目都明確告訴我們這些節(jié)點(diǎn)必定存在于二叉樹中,如果沒(méi)有這個(gè)前提條件,就需要修改代碼了。

比如力扣第 1644 題「二叉樹的最近公共祖先 II」:

給你輸入一棵不含重復(fù)值的二叉樹的,以及兩個(gè)節(jié)點(diǎn)pq,如果pq不存在于樹中,則返回空指針,否則的話返回pq的最近公共祖先節(jié)點(diǎn)。

在解決標(biāo)準(zhǔn)的最近公共祖先問(wèn)題時(shí),我們?cè)?/span>find函數(shù)的前序位置有這樣一段代碼:

//前序位置
if(root.val==val1||root.val==val2){
//如果遇到目標(biāo)值,直接返回
returnroot;
}

我也進(jìn)行了解釋,因?yàn)?/span>pq都存在于樹中,所以這段代碼恰好可以解決最近公共祖先的第二種情況:

4c8e9db4-bf93-11ec-9e50-dac502259ad0.jpg

但對(duì)于這道題來(lái)說(shuō),pq不一定存在于樹中,所以你不能遇到一個(gè)目標(biāo)值就直接返回,而應(yīng)該對(duì)二叉樹進(jìn)行完全搜索(遍歷每一個(gè)節(jié)點(diǎn)),如果發(fā)現(xiàn)pq不存在于樹中,那么是不存在LCA的。

回想我在文章開頭分析的幾種find函數(shù)的寫法,哪種寫法能夠?qū)Χ鏄溥M(jìn)行完全搜索來(lái)著?

這種:

TreeNodefind(TreeNoderoot,intval){
if(root==null){
returnnull;
}
//先去左右子樹尋找
TreeNodeleft=find(root.left,val);
TreeNoderight=find(root.right,val);
//后序位置,判斷root是不是目標(biāo)節(jié)點(diǎn)
if(root.val==val){
returnroot;
}
//root不是目標(biāo)節(jié)點(diǎn),再去看看哪邊的子樹找到了
returnleft!=null?left:right;
}

那么解決這道題也是類似的,我們只需要把前序位置的判斷邏輯放到后序位置即可:

//用于記錄p和q是否存在于二叉樹中
booleanfoundP=false,foundQ=false;

TreeNodelowestCommonAncestor(TreeNoderoot,TreeNodep,TreeNodeq){
TreeNoderes=find(root,p.val,q.val);
if(!foundP||!foundQ){
returnnull;
}
//p和q都存在二叉樹中,才有公共祖先
returnres;
}

//在二叉樹中尋找val1和val2的最近公共祖先節(jié)點(diǎn)
TreeNodefind(TreeNoderoot,intval1,intval2){
if(root==null){
returnnull;
}
TreeNodeleft=find(root.left,val1,val2);
TreeNoderight=find(root.right,val1,val2);

//后序位置,判斷當(dāng)前節(jié)點(diǎn)是不是LCA節(jié)點(diǎn)
if(left!=null&&right!=null){
returnroot;
}

//后序位置,判斷當(dāng)前節(jié)點(diǎn)是不是目標(biāo)值
if(root.val==val1||root.val==val2){
//找到了,記錄一下
if(root.val==val1)foundP=true;
if(root.val==val2)foundQ=true;
returnroot;
}

returnleft!=null?left:right;
}

這樣改造,對(duì)二叉樹進(jìn)行完全搜索,同時(shí)記錄pq是否同時(shí)存在樹中,從而滿足題目的要求。

接下來(lái),我們?cè)僮円蛔?,如果讓你在二叉搜索樹中尋?/span>pq的最近公共祖先,應(yīng)該如何做呢?

PS:二叉搜索樹相關(guān)的題目詳解見東哥帶你刷二叉搜索樹

看力扣第 235 題「二叉搜索樹的最近公共祖先」:

給你輸入一棵不含重復(fù)值的二叉搜索樹,以及存在于樹中的兩個(gè)節(jié)點(diǎn)pq,請(qǐng)你計(jì)算pq的最近公共祖先節(jié)點(diǎn)。

把之前的解法代碼復(fù)制過(guò)來(lái)肯定也可以解決這道題,但沒(méi)有用到 BST「左小右大」的性質(zhì),顯然效率不是最高的。

在標(biāo)準(zhǔn)的最近公共祖先問(wèn)題中,我們要在后序位置通過(guò)左右子樹的搜索結(jié)果來(lái)判斷當(dāng)前節(jié)點(diǎn)是不是LCA

TreeNodeleft=find(root.left,val1,val2);
TreeNoderight=find(root.right,val1,val2);

//后序位置,判斷當(dāng)前節(jié)點(diǎn)是不是LCA節(jié)點(diǎn)
if(left!=null&&right!=null){
returnroot;
}

但對(duì)于 BST 來(lái)說(shuō),根本不需要老老實(shí)實(shí)去遍歷子樹,由于 BST 左小右大的性質(zhì),將當(dāng)前節(jié)點(diǎn)的值與val1val2作對(duì)比即可判斷當(dāng)前節(jié)點(diǎn)是不是LCA

假設(shè)val1 < val2,那么val1 <= root.val <= val2則說(shuō)明當(dāng)前節(jié)點(diǎn)就是LCA;若root.valval1還小,則需要去值更大的右子樹尋找LCA;若root.valval2還大,則需要去值更小的左子樹尋找LCA。

依據(jù)這個(gè)思路就可以寫出解法代碼:

TreeNodelowestCommonAncestor(TreeNoderoot,TreeNodep,TreeNodeq){
//保證val1較小,val2較大
intval1=Math.min(p.val,q.val);
intval2=Math.max(p.val,q.val);
returnfind(root,val1,val2);
}

//在BST中尋找val1和val2的最近公共祖先節(jié)點(diǎn)
TreeNodefind(TreeNoderoot,intval1,intval2){
if(root==null){
returnnull;
}
if(root.val>val2){
//當(dāng)前節(jié)點(diǎn)太大,去左子樹找
returnfind(root.left,val1,val2);
}
if(root.val//當(dāng)前節(jié)點(diǎn)太小,去右子樹找
returnfind(root.right,val1,val2);
}
//val1<=?root.val?<=?val2
//則當(dāng)前節(jié)點(diǎn)就是最近公共祖先
returnroot;
}

再看最后一道最近公共祖先的題目吧,力扣第 1650 題「二叉樹的最近公共祖先 III」,這次輸入的二叉樹節(jié)點(diǎn)比較特殊,包含指向父節(jié)點(diǎn)的指針:

classNode{
intval;
Nodeleft;
Noderight;
Nodeparent;
};

給你輸入一棵存在于二叉樹中的兩個(gè)節(jié)點(diǎn)pq,請(qǐng)你返回它們的最近公共祖先,函數(shù)簽名如下:

NodelowestCommonAncestor(Nodep,Nodeq);

由于節(jié)點(diǎn)中包含父節(jié)點(diǎn)的指針,所以二叉樹的根節(jié)點(diǎn)就沒(méi)必要輸入了。

這道題其實(shí)不是公共祖先的問(wèn)題,而是單鏈表相交的問(wèn)題,你把parent指針想象成單鏈表的next指針,題目就變成了:

給你輸入兩個(gè)單鏈表的頭結(jié)點(diǎn)pq,這兩個(gè)單鏈表必然會(huì)相交,請(qǐng)你返回相交點(diǎn)。

4cf7b2cc-bf93-11ec-9e50-dac502259ad0.png

我在前文單鏈表的六大解題套路中詳細(xì)講解過(guò)求鏈表交點(diǎn)的問(wèn)題,具體思路在本文就不展開了,直接給出本題的解法代碼:

NodelowestCommonAncestor(Nodep,Nodeq){
//施展鏈表雙指針技巧
Nodea=p,b=q;
while(a!=b){
//a走一步,如果走到根節(jié)點(diǎn),轉(zhuǎn)到q節(jié)點(diǎn)
if(a==null)a=q;
elsea=a.parent;
//b走一步,如果走到根節(jié)點(diǎn),轉(zhuǎn)到p節(jié)點(diǎn)
if(b==null)b=p;
elseb=b.parent;
}
returna;
}

至此,5 道最近公共祖先的題目就全部講完了,前 3 道題目從一個(gè)基本的find函數(shù)衍生出解法,后 2 道比較特殊,分別利用了 BST 和單鏈表相關(guān)的技巧,希望本文對(duì)你有啟發(fā)。

審核編輯 :李倩


聲明:本文內(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)注

    23

    文章

    4631

    瀏覽量

    93434
  • 檢測(cè)
    +關(guān)注

    關(guān)注

    5

    文章

    4517

    瀏覽量

    91794
  • Git
    Git
    +關(guān)注

    關(guān)注

    0

    文章

    201

    瀏覽量

    15828

原文標(biāo)題:一文秒殺 5 道最近公共祖先問(wèn)題

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    20個(gè)經(jīng)典電路分享

    ? 20個(gè)經(jīng)典電路,工程師平均懂10個(gè),你拖后腿了嗎? 引言 對(duì)模擬電路的掌握分為三個(gè)層次。 初級(jí)層次是熟練記住這二十個(gè)電路,清楚這二十個(gè)電路的作用。只要是電子愛好者,只要是學(xué)習(xí)自動(dòng)化
    的頭像 發(fā)表于 02-10 18:19 ?123次閱讀
    20<b class='flag-5'>個(gè)</b><b class='flag-5'>經(jīng)典</b>電路分享

    飛凌嵌入式ElfBoard ELF 1板卡-移植前準(zhǔn)備之git管理內(nèi)核源碼

    我們前邊已經(jīng)介紹過(guò)Git工具,是個(gè)非常實(shí)用的代碼管理工具。如果驗(yàn)證編譯出的內(nèi)核能夠正常啟動(dòng),就可以將源碼用git工具管理起來(lái)??梢郧宄牧私庠创a改動(dòng)記錄。如果不小心把源碼改亂了還可以
    發(fā)表于 01-22 10:39

    飛凌嵌入式ElfBoard ELF 1板卡-git管理源碼之git安裝和使用

    git是什么?git個(gè)開源的分布式版本控制系統(tǒng),可以有效、高速地處理從很小到非常大的項(xiàng)目版本管理,也是Linus Torvalds為了幫助管理Linux內(nèi)核開發(fā)而開發(fā)的
    發(fā)表于 01-14 09:08

    TimSort:個(gè)在標(biāo)準(zhǔn)函數(shù)庫(kù)中廣泛使用的排序算法

    排序算法呢? 本文將帶你走進(jìn) TimSort,個(gè)在標(biāo)準(zhǔn)函數(shù)庫(kù)中廣泛使用的排序算法。 這個(gè)算法由工程師 Tim Peters 于 2001
    的頭像 發(fā)表于 01-03 11:42 ?140次閱讀

    華為云 Flexus X 實(shí)例部署安裝 HivisionIDPhoto 個(gè)輕量級(jí)的 AI 證件照制作算法

    背景 最近個(gè)開源項(xiàng)目非?;穑褪?HivisionIDPhotos 個(gè)輕量級(jí)的 AI 證件照制作
    的頭像 發(fā)表于 12-25 17:08 ?193次閱讀
    華為云 Flexus X 實(shí)例部署安裝 HivisionIDPhoto <b class='flag-5'>一</b><b class='flag-5'>個(gè)</b>輕量級(jí)的 AI 證件照制作<b class='flag-5'>算法</b>

    熱電偶需要10個(gè)而AD7124-8最多只支持8個(gè),能不能用3個(gè)AIN實(shí)現(xiàn)2個(gè)熱電偶輸入,其中個(gè)AIN作為公共的負(fù)輸入端?

    熱電偶需要10個(gè),而AD7124-8最多只支持8個(gè)。能不能用3個(gè)AIN實(shí)現(xiàn)2個(gè)熱電偶輸入,其中個(gè)
    發(fā)表于 12-19 09:16

    Pure path studio內(nèi)能否自己創(chuàng)建個(gè)component,來(lái)實(shí)現(xiàn)特定的算法,例如LMS算法?

    TLV320AIC3254EVM-K評(píng)估模塊, Pure path studio軟件開發(fā)環(huán)境。 問(wèn)題:1.Pure path studio 內(nèi)能否自己創(chuàng)建個(gè)component,來(lái)實(shí)現(xiàn)特定的算法
    發(fā)表于 11-01 08:25

    基于ArkTS語(yǔ)言的OpenHarmony APP應(yīng)用開發(fā):公共事件的訂閱和發(fā)布

    1、程序介紹 本示例主要展示了公共事件相關(guān)的功能,實(shí)現(xiàn)了個(gè)檢測(cè)用戶部分行為的應(yīng)用。 具體而言,本案例實(shí)現(xiàn)了如下幾個(gè)公共事件功能: 通過(guò)訂閱系統(tǒng)公共
    發(fā)表于 09-18 13:16

    光伏組件引出端機(jī)械負(fù)載下的強(qiáng)度測(cè)試

    和彎曲等機(jī)械負(fù)載。「美能光伏」引出端強(qiáng)度測(cè)試儀,模擬組件在運(yùn)輸、安裝過(guò)程中的線纜拉扯,設(shè)備以定質(zhì)量施壓和扭力評(píng)判引線端的抗拉和抗扭力性能。IEC61215標(biāo)準(zhǔn)MQT
    的頭像 發(fā)表于 09-03 08:05 ?461次閱讀
    光伏組件<b class='flag-5'>引出</b>端機(jī)械負(fù)載下的強(qiáng)度測(cè)試

    機(jī)器學(xué)習(xí)的經(jīng)典算法與應(yīng)用

    關(guān)于數(shù)據(jù)機(jī)器學(xué)習(xí)就是喂入算法和數(shù)據(jù),讓算法從數(shù)據(jù)中尋找種相應(yīng)的關(guān)系。Iris鳶尾花數(shù)據(jù)集是個(gè)經(jīng)典
    的頭像 發(fā)表于 06-27 08:27 ?1735次閱讀
    機(jī)器學(xué)習(xí)的<b class='flag-5'>經(jīng)典</b><b class='flag-5'>算法</b>與應(yīng)用

    打開esp-idf的任意個(gè)component時(shí),vscode會(huì)自動(dòng)導(dǎo)入該component的git倉(cāng)庫(kù),怎么解決?

    當(dāng)我打開esp-idf 的任意個(gè)component時(shí),vscode會(huì)自動(dòng)導(dǎo)入該component的git倉(cāng)庫(kù),導(dǎo)致vscode的源碼管理非常擁擠,請(qǐng)問(wèn)這有什么辦法解決嗎?還是我vscode設(shè)置不對(duì)導(dǎo)致? 希望大家能指導(dǎo)指導(dǎo),
    發(fā)表于 06-21 07:39

    ubuntu下的vscode插件安裝idf時(shí),總是找不到git,為什么?

    總是提示:Git is not found in current environment 但是我已經(jīng)在setting.json下設(shè)置了\"git.path\": \"/bin/git\" 同行,命令行里查看
    發(fā)表于 06-21 07:16

    Git發(fā)布新版本 修補(bǔ)五處安全漏洞 包含嚴(yán)重遠(yuǎn)程代碼執(zhí)行風(fēng)險(xiǎn)

    CVE-2024-32002漏洞的嚴(yán)重性在于,黑客可通過(guò)創(chuàng)建特定的Git倉(cāng)庫(kù)子模塊,誘騙Git將文件寫入.git/目錄,而非子模塊的工作樹。如此來(lái),攻擊者便能在克隆過(guò)程中植入惡意腳本
    的頭像 發(fā)表于 05-31 10:09 ?661次閱讀

    飛凌ElfBoard ELF 1板卡-ubuntu18.04 git安裝及基本使用

    1.安裝gitsudo apt-get install git 2.git初始化git init 3.設(shè)置用戶名和郵箱git config --global user.name \"你
    發(fā)表于 03-21 16:23

    C語(yǔ)言實(shí)現(xiàn)經(jīng)典排序算法概覽

    冒泡排序(英語(yǔ):Bubble Sort)是種簡(jiǎn)單的排序算法。它重復(fù)地走訪過(guò)要排序的數(shù)列,次比較兩個(gè)元素,如果他們的順序(如從大到小、首字母從A到Z)錯(cuò)誤就把他們交換過(guò)來(lái)。
    的頭像 發(fā)表于 02-25 12:27 ?490次閱讀
    C語(yǔ)言實(shí)現(xiàn)<b class='flag-5'>經(jīng)典</b>排序<b class='flag-5'>算法</b>概覽