国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Leetcode—137.只出現(xiàn)一次的數(shù)字II【中等】

這篇具有很好參考價(jià)值的文章主要介紹了Leetcode—137.只出現(xiàn)一次的數(shù)字II【中等】。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

2023每日刷題(二)

Leetcode—137.只出現(xiàn)一次的數(shù)字II

Leetcode—137.只出現(xiàn)一次的數(shù)字II【中等】,LeetCode刷題,leetcode,算法,職場(chǎng)和發(fā)展

沒有滿足空間復(fù)雜度的Map題解


class Solution {
public:
    int singleNumber(vector<int>& nums) {
        unordered_map<int, int>count;
        for(int iter: nums) {
            ++count[iter];
        }
        int ans = 0;
        for(auto [iter, cnt]: count) {
            if(cnt == 1) {
                // return iter;
                ans = iter;
                break;
            }
        }
        return ans;
    }
};

常規(guī)題解——位運(yùn)算做法

Leetcode—137.只出現(xiàn)一次的數(shù)字II【中等】,LeetCode刷題,leetcode,算法,職場(chǎng)和發(fā)展

實(shí)現(xiàn)代碼

int singleNumber(int* nums, int numsSize){
    int i, j;
    int opt[32] = {0};
    for(i = 0; i < numsSize; i++) {
        for(j = sizeof(int) * 8 - 1; j >= 0 ; j--) {
            opt[j] += nums[i] & 1;
            nums[i] >>= 1;
        }
    }
    int k = 0;
    unsigned int res = (unsigned int)0;
    for(; k < sizeof(int) * 8; k++) {
        res <<= 1;
        res |= opt[k] % 3;
    }
    return res;
}

為什么要用unsigned int呢,因?yàn)榛蜃笠埔绯鰣?bào)錯(cuò),例如,
Line 13: Char 13: runtime error: left shift of 2147483646 by 1 places cannot be represented in type ‘int’ [solution.c]

左移的高位如果超過符號(hào)位,就會(huì)報(bào)錯(cuò)。因此要用類型強(qiáng)制轉(zhuǎn)換來unsigned來接住。

提交結(jié)果

Leetcode—137.只出現(xiàn)一次的數(shù)字II【中等】,LeetCode刷題,leetcode,算法,職場(chǎng)和發(fā)展

有限狀態(tài)自動(dòng)機(jī)FSM+位運(yùn)算法

解題思想

參考的是這兩位大佬的博客,一個(gè)是k神
Leetcode—137.只出現(xiàn)一次的數(shù)字II【中等】,LeetCode刷題,leetcode,算法,職場(chǎng)和發(fā)展
Leetcode—137.只出現(xiàn)一次的數(shù)字II【中等】,LeetCode刷題,leetcode,算法,職場(chǎng)和發(fā)展
Leetcode—137.只出現(xiàn)一次的數(shù)字II【中等】,LeetCode刷題,leetcode,算法,職場(chǎng)和發(fā)展
Leetcode—137.只出現(xiàn)一次的數(shù)字II【中等】,LeetCode刷題,leetcode,算法,職場(chǎng)和發(fā)展
Leetcode—137.只出現(xiàn)一次的數(shù)字II【中等】,LeetCode刷題,leetcode,算法,職場(chǎng)和發(fā)展
還有靈茶山艾府大神的,很有啟發(fā)!
Leetcode—137.只出現(xiàn)一次的數(shù)字II【中等】,LeetCode刷題,leetcode,算法,職場(chǎng)和發(fā)展

實(shí)現(xiàn)代碼

int singleNumber(int* nums, int numsSize){
    int a = 0, b = 0;
    int i;
    int tmp = a;
    for(i = 0; i < numsSize; i++) {
        a = (a ^ nums[i]) & (a | b);
        b = (b ^ nums[i]) & ~tmp;
        tmp = a;
    }
    return b;
}

提交結(jié)果

Leetcode—137.只出現(xiàn)一次的數(shù)字II【中等】,LeetCode刷題,leetcode,算法,職場(chǎng)和發(fā)展

變式題

這一題還可以繼續(xù)擴(kuò)展,在數(shù)組中每個(gè)元素都出現(xiàn) 5 次,找出只出現(xiàn) 1 次的數(shù)。那該怎么做呢?思路還是一樣的,模擬一個(gè)五進(jìn)制,5 次就會(huì)消除。

int singleNumber(int* nums, int numsSize){
    int i, a, b, c, tmpa, tmpb, tmpc;
    a = 0;
    b = 0;
    c = 0;
    for(i = 0; i < numsSize; i++) {
        tmpa = a;
        tmpb = b;
        tmpc = c;
        a = (a ^ nums[i]) & (b & c);
        b = ((b ^ nums[i]) ^ (~(tmpa | c))) & (~tmpa);
        c = (c ^ nums[i]) & (~tmpa);
    }
    return c;
}

int main()
{
    int x;
    int arr[11] = {9, 9, 9, 9, 9, 5, 3, 3, 3, 3, 3};
    x = singleNumber(arr, 11);
    printf("%d\n", x);
}

Leetcode—137.只出現(xiàn)一次的數(shù)字II【中等】,LeetCode刷題,leetcode,算法,職場(chǎng)和發(fā)展
之后我會(huì)持續(xù)更新,如果喜歡我的文章,請(qǐng)記得一鍵三連哦,點(diǎn)贊關(guān)注收藏,你的每一個(gè)贊每一份關(guān)注每一次收藏都將是我前進(jìn)路上的無限動(dòng)力 ?。。〃I(▔▽▔)↗感謝支持!文章來源地址http://www.zghlxwxcb.cn/news/detail-723544.html

到了這里,關(guān)于Leetcode—137.只出現(xiàn)一次的數(shù)字II【中等】的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • leetcode:只出現(xiàn)一次的數(shù)字 Ⅲ(詳解)

    leetcode:只出現(xiàn)一次的數(shù)字 Ⅲ(詳解)

    前言:內(nèi)容包括:題目,代碼實(shí)現(xiàn),大致思路,代碼解讀 給你一個(gè)整數(shù)數(shù)組?nums,其中恰好有兩個(gè)元素只出現(xiàn)一次,其余所有元素均出現(xiàn)兩次。 找出只出現(xiàn)一次的那兩個(gè)元素。你可以按 任意順序 返回答案。 你必須設(shè)計(jì)并實(shí)現(xiàn)線性時(shí)間復(fù)雜度的算法且僅使用常量額外空間來

    2023年04月09日
    瀏覽(23)
  • LeetCode、136. 只出現(xiàn)一次的數(shù)字【簡(jiǎn)單,位運(yùn)算】

    LeetCode、136. 只出現(xiàn)一次的數(shù)字【簡(jiǎn)單,位運(yùn)算】

    博主介紹:?目前全網(wǎng)粉絲2W+,csdn博客專家、Java領(lǐng)域優(yōu)質(zhì)創(chuàng)作者,博客之星、阿里云平臺(tái)優(yōu)質(zhì)作者、專注于Java后端技術(shù)領(lǐng)域。 涵蓋技術(shù)內(nèi)容:Java后端、算法、分布式微服務(wù)、中間件、前端、運(yùn)維、ROS等。 博主所有博客文件目錄索引:博客目錄索引(持續(xù)更新) 視頻平臺(tái):

    2024年02月22日
    瀏覽(23)
  • 力扣(LeetCode)算法_C++—— 只出現(xiàn)一次的數(shù)字

    給你一個(gè) 非空 整數(shù)數(shù)組 nums ,除了某個(gè)元素只出現(xiàn)一次以外,其余每個(gè)元素均出現(xiàn)兩次。找出那個(gè)只出現(xiàn)了一次的元素。 你必須設(shè)計(jì)并實(shí)現(xiàn)線性時(shí)間復(fù)雜度的算法來解決此問題,且該算法只使用常量額外空間。 示例 1 : 輸入:nums = [2,2,1] 輸出:1 示例 2 : 輸入:nums = [4,

    2024年02月09日
    瀏覽(20)
  • 【LeetCode】260.只出現(xiàn)一次的數(shù)字 III(找出單身狗)

    【LeetCode】260.只出現(xiàn)一次的數(shù)字 III(找出單身狗)

    ??? 樊梓慕: 個(gè)人主頁(yè) ? ?? 個(gè)人專欄: 《C語(yǔ)言》《數(shù)據(jù)結(jié)構(gòu)》《藍(lán)橋杯試題》 ?? 每一個(gè)不曾起舞的日子,都是對(duì)生命的辜負(fù)。 目錄 前言: 一只單身狗: 兩只單身狗: 本篇主要講解LeetCode上的經(jīng)典題型:只出現(xiàn)一次的數(shù)字,我匯總了該類問題的兩種情況(一只單身狗

    2024年02月16日
    瀏覽(20)
  • 2023年7月3日l(shuí)eetcode每日一題打卡——136.只出現(xiàn)一次的數(shù)字

    136. 只出現(xiàn)一次的數(shù)字 - 力扣(LeetCode) 給你一個(gè) 非空 整數(shù)數(shù)組 nums ,除了某個(gè)元素只出現(xiàn)一次以外,其余每個(gè)元素均出現(xiàn)兩次。找出那個(gè)只出現(xiàn)了一次的元素。 你必須設(shè)計(jì)并實(shí)現(xiàn) 線性時(shí)間復(fù)雜度 的算法來解決此問題,且該算法 只使用常量額外空間 。 示例1: 示例2: 示

    2024年02月12日
    瀏覽(23)
  • 【LeetCode】每日一題&最后一個(gè)單詞的長(zhǎng)度&投票法求解多數(shù)元素&異或操作符巧解只出現(xiàn)一次的數(shù)字&整數(shù)反轉(zhuǎn)

    ========================================================================= 個(gè)人主頁(yè)直達(dá): 小白不是程序媛 LeetCode系列專欄: LeetCode刷題掉發(fā)記 ========================================================================= 目錄 LeetCode 58.最后一個(gè)單詞的長(zhǎng)度 LeetCode169.多數(shù)元素 LeetCode 136.出現(xiàn)一次的數(shù)字 LeetCode 7.整數(shù)

    2024年02月08日
    瀏覽(25)
  • 只出現(xiàn)一次的數(shù)字

    問題: 給你一個(gè)? 非空 ?整數(shù)數(shù)組? nums ?,除了某個(gè)元素只出現(xiàn)一次以外,其余每個(gè)元素均出現(xiàn)兩次。找出那個(gè)只出現(xiàn)了一次的元素。 你必須設(shè)計(jì)并實(shí)現(xiàn)線性時(shí)間復(fù)雜度的算法來解決此問題,且該算法只使用常量額外空間。 示例: 示例 1 : 示例 2 : 示例 3 : 思想: 由于

    2024年02月07日
    瀏覽(23)
  • 只出現(xiàn)一次的數(shù)字——力扣136
  • 每日一題——只出現(xiàn)一次的數(shù)字

    每日一題——只出現(xiàn)一次的數(shù)字

    題目鏈接 要求為線性時(shí)間復(fù)雜度,即 時(shí)間復(fù)雜度為O(n) ,那么我們就不能用簡(jiǎn)單的兩層循環(huán)來解決問題 要求只能使用常量額外空間,即 空間復(fù)雜度為O(1) ,那么我們就不能額外開辟一個(gè)數(shù)組來記錄每個(gè)元素出現(xiàn)的次數(shù) 這里,給大家介紹一個(gè)全新的方法:位運(yùn)算——異或^ 注

    2024年02月15日
    瀏覽(19)
  • 【舉一反三】只出現(xiàn)一次的數(shù)字

    【舉一反三】只出現(xiàn)一次的數(shù)字

    ?本文,講位運(yùn)算——異或運(yùn)算。因?yàn)轭}干中說明要線性時(shí)間復(fù)雜度,所以采用位運(yùn)算進(jìn)行操作,而沒有采用哈希表。 目錄 1.只出現(xiàn)一次的數(shù)字 I ?2.只出現(xiàn)一次的數(shù)字 II ?3.只出現(xiàn)一次的數(shù)字 III 136. 只出現(xiàn)一次的數(shù)字 - 力扣(LeetCode) 題目: 給你一個(gè) 非空整數(shù)數(shù)組 nums ,除

    2023年04月15日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包