您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“php計算漢明距離總和的示例分析”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“php計算漢明距離總和的示例分析”這篇文章吧。
兩個整數的漢明距離指的是這兩個數字的二進制數對應位不同的數量。
計算一個數組中,任意兩個數之間漢明距離的總和。
實例
輸入: 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。
解題思路 1
窮舉兩兩組合的數量,然后累加漢明距離,這個是最簡單直白的方案。
結果是大量數據的時候會超時,階乘的數量太多。
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'); }}
以上是“php計算漢明距離總和的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。