<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          ?LeetCode刷題實(shí)戰(zhàn)477:漢明距離總和

          共 1592字,需瀏覽 4分鐘

           ·

          2021-12-28 13:46

          算法的重要性,我就不多說(shuō)了吧,想去大廠,就必須要經(jīng)過(guò)基礎(chǔ)知識(shí)和業(yè)務(wù)邏輯面試+算法面試。所以,為了提高大家的算法能力,這個(gè)公眾號(hào)后續(xù)每天帶大家做一道算法題,題目就從LeetCode上面選 !

          今天和大家聊的問(wèn)題叫做?漢明距離總和,我們先來(lái)看題面:
          https://leetcode-cn.com/problems/total-hamming-distance/

          The Hamming distance between two integers is the number of positions at which the corresponding bits are different.

          Given an integer array nums, return the sum of Hamming distances between all the pairs of the integers in nums.

          兩個(gè)整數(shù)的 漢明距離 指的是這兩個(gè)數(shù)字的二進(jìn)制數(shù)對(duì)應(yīng)位不同的數(shù)量。
          給你一個(gè)整數(shù)數(shù)組 nums,請(qǐng)你計(jì)算并返回 nums 中任意兩個(gè)數(shù)之間 漢明距離的總和 。

          示例? ? ? ? ? ? ? ? ? ? ? ? ?

          示例 1:
          輸入:nums = [4,14,2]
          輸出:6
          解釋?zhuān)涸诙M(jìn)制表示中,4 表示為 0100 ,14 表示為 1110 ,2表示為 0010 。(這樣表示是為了體現(xiàn)后四位之間關(guān)系)
          所以答案為:
          HammingDistance(4, 14) + HammingDistance(4, 2) + HammingDistance(14, 2) = 2 + 2 + 2 = 6

          示例 2:
          輸入:nums = [4,14,4]
          輸出:4


          解題


          對(duì)每一個(gè)數(shù)的相同位置的上的二進(jìn)制位進(jìn)行判斷,統(tǒng)計(jì)是1的個(gè)數(shù)cnt,那么為0的個(gè)數(shù)就是nums.size()-cnt,那么該二進(jìn)制位就會(huì)形成cnt*(nums.size()-cnt)的漢明距離。

          class?Solution?{
          public:
          ????int?totalHammingDistance(vector<int>& nums)?{
          ????????int?cnt,ans=0;
          ????????for(int?i=0;i<32;i++){
          ????????????cnt=0;
          ????????????for(int?j=0;j????????????????if(nums[j]&1){
          ????????????????????cnt++;
          ????????????????}
          ????????????????nums[j]>>=1;
          ????????????}
          ????????????ans+=cnt*(nums.size()-cnt);
          ????????}
          ????????return?ans;
          ????}
          };


          好了,今天的文章就到這里,如果覺(jué)得有所收獲,請(qǐng)順手點(diǎn)個(gè)在看或者轉(zhuǎn)發(fā)吧,你們的支持是我最大的動(dòng)力 。

          上期推文:

          LeetCode1-460題匯總,希望對(duì)你有點(diǎn)幫助!

          LeetCode刷題實(shí)戰(zhàn)461:漢明距離

          LeetCode刷題實(shí)戰(zhàn)462:最少移動(dòng)次數(shù)使數(shù)組元素相等 II

          LeetCode刷題實(shí)戰(zhàn)463:島嶼的周長(zhǎng)

          LeetCode刷題實(shí)戰(zhàn)464:我能贏嗎

          LeetCode刷題實(shí)戰(zhàn)465:最優(yōu)賬單平衡

          LeetCode刷題實(shí)戰(zhàn)466:統(tǒng)計(jì)重復(fù)個(gè)數(shù)

          LeetCode刷題實(shí)戰(zhàn)467:環(huán)繞字符串中唯一的子字符串

          LeetCode刷題實(shí)戰(zhàn)468:驗(yàn)證IP地址

          LeetCode刷題實(shí)戰(zhàn)469:凸多邊形

          LeetCode刷題實(shí)戰(zhàn)470:用 Rand7() 實(shí)現(xiàn) Rand10()

          LeetCode刷題實(shí)戰(zhàn)471:編碼最短長(zhǎng)度的字符串

          LeetCode刷題實(shí)戰(zhàn)472:連接詞

          LeetCode刷題實(shí)戰(zhàn)473:火柴拼正方形

          LeetCode刷題實(shí)戰(zhàn)474:一和零

          LeetCode刷題實(shí)戰(zhàn)475:供暖器

          LeetCode刷題實(shí)戰(zhàn)476:數(shù)字的補(bǔ)數(shù)


          瀏覽 23
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  成年人视频在线看 | 外网成人网站 | 免费欧美一级 | 无码欧美 | 欧美伦理一区二区 |