日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

php計算漢明距離總和的實例講解

瀏覽:23日期:2022-09-06 17:06:21

兩個整數的漢明距離指的是這兩個數字的二進制數對應位不同的數量。

計算一個數組中,任意兩個數之間漢明距離的總和。

實例

輸入: 4, 14, 2輸出: 6解釋:在二進制表示中,4表示為0100,14表示為1110,2表示為0010。(這樣表示是為了體現后四位之間關系)所以答案為:HammingDistance(4, 14) + HammingDistance(4, 2) + HammingDistance(14, 2) = 2 + 2 + 2 = 6.

注意:

數組中元素的范圍為從 0到 10^9。數組的長度不超過 10^4。

解題思路

窮舉兩兩組合的數量,然后累加漢明距離,這個是最簡單直白的方案。

結果是大量數據的時候會超時,階乘的數量太多。

class Solution { /** * @param Integer[] $nums * @return Integer */ function totalHammingDistance($nums) {$count = count($nums);$sum = 0;for ($i = 0; $i < $count - 1; $i++) { for ($j = $i+1; $j < $count; $j++) {$sum += $this->hm($nums[$i], $nums[$j]); }}return $sum; } // 漢明距離方法 function hm($x, $y) {return substr_count(decbin($x ^ $y), ’1’); }}

思路擴展:

解題思路擴展

咱們常常會這樣分析問題:最簡單的狀況 -> 通常的、復雜的狀況。以前咱們是:遍歷全部可能的兩兩組合。

如今咱們換一個角度看:若是int只有1位-> int有32位。leetcode

首先,若是 int 只有 1 位,即數組 nums 中的元素只有兩種狀況,0 或者 1,此時求漢明距離總和的步驟以下:get

首先將數組分紅兩組,全 0 位一組,全 1 位一組

將兩組數兩兩組合,記一個為a,一個為b

若是 a、b 均來自 0 那一組,或者均來自 1 那一組,此時不會有漢明距離產生。可是若是 a、b 一個來自 0 那一組,另一個來自1那一組,這時將會產生漢明距離

假設 nums 數組元素個數為 n,其中 0 元素個數為 k,則 1 元素的個數為 n-k,則上一步可以產生漢明距離的總和就是k*(n-k)

k*(n-k) 就是 int 只有 1 位的狀況下的漢明距離總和

若是將 int 的位數從 1 位擴展到 32 位,那么就是將遍歷每一位,而后求出在這一位上的漢明距離和,累加到一塊兒,這樣能夠將算法復雜度從 $O(N^2)$ 下降到 $O(32times N)$,即為 $O(N)$。

能夠看下面這個例子:

十進制 二進制

4: 0 1 0 0

14: 1 1 1 0

2: 0 0 1 0

1: 0 0 0 1

先看最后一列,有三個 0 和一個 1,那么它們之間相互的漢明距離就是 3,即 1 和其余三個 0 分別的距離累加,而后在看第三列,累加漢明距離為 4,由于每一個 1 都會跟兩個 0 產生兩個漢明距離,同理第二列也是 4,第一列是 3。各列相互之間兩兩組合的漢明距離總和就是各列 0 的個數與 1 的個數之和,把各列漢明距離總和再累加就是題目所求的數組 nums 元素兩兩之間的漢明距離總和。

代碼

class Solution {/*** @param Integer[] $nums* @return Integer*/function totalHammingDistance($nums) {$count = count($nums);$sum = 0;for($i = 0; $i < 32; $i++){$tmpCount = 0;for($j = 0; $j < $count; $j++)$tmpCount += ($nums[$j] >> $i) & 1;}$sum += $tmpCount * ($count - $tmpCount);}return $sum;}}

到此這篇關于php計算漢明距離總和的實例講解的文章就介紹到這了,更多相關php計算漢明距離總和的方法內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: PHP
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲精品大片| 久久久久久婷| 欧美特黄一区| 激情婷婷欧美| 国产精品毛片| 日韩国产在线观看一区| 国产欧美日韩一级| 国产成人久久| 精品在线网站观看| 电影天堂国产精品| 9色国产精品| 欧美一级一区| 在线中文字幕播放| 亚洲综合精品四区| 国产日韩视频在线| 岛国av在线网站| 黄色免费成人| 国产欧美另类| 中文在线а√天堂 | 日本在线成人| 欧美激情亚洲| 欧美不卡在线| 中文字幕成人| 国产一区二区三区久久| 伊人久久成人| 国产精品超碰| 九一精品国产| 国产精品调教| 狠狠久久婷婷| 精品三级在线| 亚洲一区欧美| 中文在线а√天堂| 中文字幕成人| 伊伊综合在线| 日本不卡高清| 久久久久久黄| 日韩不卡一区二区| 欧洲在线一区| 国产亚洲高清在线观看| 久久精品123| 国产美女久久| 西西人体一区二区| 日韩免费高清| 国产精品一区二区免费福利视频| 成人精品天堂一区二区三区| 日韩激情啪啪| 香蕉精品久久| 久久一区欧美| 日韩美女精品| 一区二区视频欧美| 手机在线电影一区| 日韩一区二区三区精品视频第3页| 国产一二在线播放| 久久国产三级| 蜜臀久久99精品久久久久久9 | 亚洲永久字幕| 手机在线电影一区| 国产伦精品一区二区三区在线播放| 午夜国产欧美理论在线播放 | 久久不射网站| 色在线视频观看| 国产精品日韩精品在线播放| 国产精品毛片| av一区在线| 精品五月天堂| 国产欧美日韩亚洲一区二区三区| 亚洲自拍另类| 免费视频国产一区| 日本在线精品| www在线观看黄色| 国产伦精品一区二区三区视频| 蜜臀久久99精品久久久久宅男 | 亚洲激情中文在线| 国产suv精品一区二区四区视频| **爰片久久毛片| 在线免费观看亚洲| 日韩精品一级二级| 久久精品国产大片免费观看| 六月天综合网| 亚洲美女久久精品| 国产精品久久久久av蜜臀| 亚洲午夜久久| 国产精品普通话对白| 亚洲国内欧美| 99精品一区| 国产在线日韩| 激情综合自拍| 99精品视频在线观看免费播放| 国产欧美日本| 国产精品免费大片| 欧美日本精品| 欧美精品中文| 欧美午夜三级| 国产精品永久| 欧美黑人做爰爽爽爽| 国产欧美一区二区三区国产幕精品| 亚洲作爱视频| 在线综合欧美| 亚洲一级高清| 秋霞影视一区二区三区| 日韩欧美一区二区三区在线观看| 国产一区二区精品久| 麻豆视频在线观看免费网站黄 | 日韩极品在线观看| 日韩va亚洲va欧美va久久| 亚洲1区在线观看| 97se亚洲| 精品一区二区三区免费看 | 国产一区二区三区不卡视频网站 | 激情久久久久久久| 黄色免费成人| 日韩动漫一区| 激情中国色综合| 欧美在线观看视频一区| 首页欧美精品中文字幕| 日韩一区二区三区精品| 久久精品一区| 蜜臀av免费一区二区三区| 日韩一级网站| 日韩欧美2区| 国产中文字幕一区二区三区| 久久精品电影| 亚洲综合图色| 欧美激情福利| 久久中文字幕二区| 亚洲三级视频| 你懂的亚洲视频| 久久婷婷一区| 日韩成人午夜精品| 激情国产在线| 影院欧美亚洲| 国产乱人伦丫前精品视频| 97视频热人人精品免费| 亚洲主播在线| 国产一区一一区高清不卡| 亚洲成人精品| 日韩免费精品| 久久精品一区二区不卡| 综合激情视频| 激情不卡一区二区三区视频在线| 国产主播一区| 日韩中文字幕亚洲一区二区va在线 | 福利精品在线| 久久最新视频| 精品国产欧美日韩| 日韩午夜免费| 精品国产成人| 一区二区国产在线观看| 精品视频一区二区三区在线观看 | 香蕉国产精品| 国产精品videossex| 99久精品视频在线观看视频| 少妇精品在线| 久久麻豆精品| 国产精品theporn| 九九综合九九| 精品欧美日韩精品| 亚洲综合中文| 丝袜美腿一区| 国产精品对白久久久久粗| 99pao成人国产永久免费视频| 久久精品国产亚洲一区二区三区| 在线亚洲国产精品网站| 国语对白精品一区二区| 亚洲精品人人| 米奇777超碰欧美日韩亚洲| 91精品福利观看| 精品欧美久久| 美女网站视频一区| 国产精品a久久久久| 制服诱惑一区二区| 日本欧美不卡| 精品久久一区| 欧美日韩精品一区二区三区视频| 日韩视频一区| 成人日韩在线观看| 国产一区国产二区国产三区| 久久精品99久久久| 中文日韩在线| 国产精品av久久久久久麻豆网| 精品深夜福利视频| 欧美偷窥清纯综合图区| 午夜欧美精品久久久久久久| 国产aa精品| 国产精品成人国产| 欧美久久香蕉| 亚欧成人精品| 中文无码久久精品| 亚洲男女自偷自拍| 日韩午夜电影| 午夜精品影院| av成人国产| 亚洲少妇诱惑| 一区免费在线| 免费av一区| 亚洲精品一区二区妖精| 久久精品国产68国产精品亚洲| 精品国产aⅴ| 久久一区精品| 国产精品yjizz视频网|