第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 PHP、Node 和 Golang 中查找兩個數(shù)組之間的差異

在 PHP、Node 和 Golang 中查找兩個數(shù)組之間的差異

Go
躍然一笑 2021-09-13 16:34:16
這是我需要做的典型示例$testArr = array(2.05080E6,29400,420);$stockArrays =  array(                      array(2.05080E6,29400,0),                      array(2.05080E6,9800,420),                      array(1.715E6,24500,280),                      array(2.05080E6,29400,140),                      array(2.05080E6,4900,7));我需要確定差異最小的 stockArray。幾點說明保證每個位置數(shù)組元素的數(shù)值不重疊。(即 arr[0] 將始終具有最大值,arr 1將至少小 10 個數(shù)量級等)。在確定最小差異時,差異的絕對值不計算在內(nèi)。只是,不同數(shù)組索引的數(shù)量很重要。位置差異確實具有權(quán)重。因此,在我的示例中,stockArr 1也“更加不同” ——就像它的 stockArr[0] 和 stockArr[3] 對應物一樣——僅在一個索引位置上有所不同,因為該索引位置更大。stockArrays 元素的數(shù)量通常少于 10 個,但可能更多(盡管永遠不會變成 3 個數(shù)字)庫存數(shù)組將始終具有相同數(shù)量的元素。測試數(shù)組將具有相同或更少的元素。但是,當填充較少的 testArr 時,可能匹配的元素始終與 stockArray 位于同一位置。例如$testArray(29400,140)將被轉(zhuǎn)化為$testArray(0,29400,140);在進行差異測試之前。最后,平局是可能的。例如,我上面的匹配示例是 stockArrays[0] 和 stockArrays[3]。在我的例子中,結(jié)果是$result = array(0=>array(0,0,1),3=>array(0,0,1));表明差異最小的股票數(shù)組位于索引 0 和 3 處,差異位于位置 2。在 PHP 中,我會以array_diff作為起點來處理所有這些。對于 Node/JavaScript,我可能會傾向于php.js array_diff端口,盡管我傾向于探索一下,因為在最壞的轉(zhuǎn)換場景中它是一個 O(n2) 事件。我是 Golang 的新手,所以我不確定如何在那里實現(xiàn)這個問題。我注意到 Node 確實有一個 array_diff npm 模塊。我有一個不合時宜的想法是將數(shù)組轉(zhuǎn)換為填充字符串(較小的數(shù)組元素填充為 0)并有效地對每個字符的序數(shù)值執(zhí)行 XOR,但我認為這可能是一件相當瘋狂的事情。我關(guān)心速度,但不是不惜一切代價。在理想的世界中,每種目標語言都將使用相同的解決方案(算法),但實際上它們之間的差異可能意味著這是不可能的/不是一個好主意。也許這里的某個人可能會向我指出實現(xiàn)這一點的不那么簡單的方法 - 即不僅僅是 array_diff 端口。
查看完整描述

1 回答

  • 1 回答
  • 0 關(guān)注
  • 167 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號