真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Leetcode-SingleNumber-創(chuàng)新互聯(lián)

Single NumberI

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專(zhuān)注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、小程序開(kāi)發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶(hù)創(chuàng)新互聯(lián)還提供了黃龍免費(fèi)建站歡迎大家使用!

Leetcode-Single Number

分析:這道題應(yīng)該是很簡(jiǎn)單了,直接使用異或運(yùn)算,把重復(fù)出現(xiàn)的數(shù)字消掉剩下的就是出現(xiàn)一次的元素

lass Solution {
    public int singleNumber(int[] nums) {
        int tmp = nums[0];
        for(int i = 1;i < nums.length;i++){
            tmp = tmp ^  nums[i];
        }
        return tmp;
    }
}

Single NumberII

Leetcode-Single Number

分析:這種題型可以歸納為一個(gè)數(shù)組中的元素某一元素只出現(xiàn)了K次,而其他元素均出現(xiàn)了M次,然后求出出現(xiàn)K次的元素問(wèn)題。如果K

為奇數(shù)M為偶數(shù),就跟上面第一題是一樣的處理方式了;而其他情況則需要考慮使用位運(yùn)算。我們知道,每個(gè)數(shù)字的二進(jìn)制表示是一定的,所以我們通過(guò)計(jì)算每一位中1的個(gè)數(shù),然后除3,若余數(shù)為0說(shuō)明該位上為1的數(shù)都出現(xiàn)了三次,若余數(shù)不為0,說(shuō)明我們要找的那個(gè)數(shù)字該位為1,通過(guò)移位運(yùn)算實(shí)現(xiàn)上述過(guò)程。同理,若題目要求其他元素均出現(xiàn)了5次,就除5。

class Solution {
    public int singleNumber(int[] nums) {
        int ans = 0;
        for(int i = 0 ; i < 32 ; i++){
            int sum = 0;
            for(int j = 0 ; j < nums.length ; j++){
                if(((nums[j] >> i) & 1) == 1 ){
                    sum++;
                    sum %= 3;
                }
            }
            if(sum != 0){
                ans |= sum << i;//將循環(huán)中右移的位移回原位置
            }
        }
        return ans;
        
    }

Single NumberIII

Leetcode-Single Number

分析:數(shù)組中的無(wú)關(guān)元素出現(xiàn)了偶數(shù)次,所以先考慮用異或?qū)⑺鼈兿?,得?和5的異或結(jié)果。然后我們考慮如何將3和5分離:3(011)和5(101)異或的結(jié)果為6(110),我們需要先找到3和5的二進(jìn)制表示中不相同的一位,這里的方法就是6與-6進(jìn)行相與,即110與其補(bǔ)碼(取反加一)011相與,得到010(即從右往左3和5的第二位不同),我們姑且將它稱(chēng)為分離因子。然后遍歷整個(gè)數(shù)組,每個(gè)數(shù)與該分離因子相與可將數(shù)組分為&x==0和&x!=0的兩組,然后在每組內(nèi)部進(jìn)行異或運(yùn)算,得到結(jié)果。

class Solution {
    public int[] singleNumber(int[] nums) {
        int diff = 0;
        for(int num : nums) {
            diff ^= num;
        }
        diff &= -diff;
        int[] res = new int[]{0,0};
        for(int i : nums) {
            if((diff & i) == 0) {
                res[0] ^= i;
            }
            if((diff & i) != 0) {
                res[1] ^= i;
            }
        }
        return res;
    }
}

創(chuàng)新互聯(lián)www.cdcxhl.cn,專(zhuān)業(yè)提供香港、美國(guó)云服務(wù)器,動(dòng)態(tài)BGP最優(yōu)骨干路由自動(dòng)選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨(dú)有T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動(dòng)現(xiàn)已開(kāi)啟,新人活動(dòng)云服務(wù)器買(mǎi)多久送多久。


新聞標(biāo)題:Leetcode-SingleNumber-創(chuàng)新互聯(lián)
網(wǎng)站路徑:http://weahome.cn/article/depehc.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部