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

C語言每日一練--------Day(11)

這篇具有很好參考價(jià)值的文章主要介紹了C語言每日一練--------Day(11)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

本專欄為c語言練習(xí)專欄,適合剛剛學(xué)完c語言的初學(xué)者。本專欄每天會(huì)不定時(shí)更新,通過每天練習(xí),進(jìn)一步對(duì)c語言的重難點(diǎn)知識(shí)進(jìn)行更深入的學(xué)習(xí)。

今日練習(xí)題關(guān)鍵字:找到數(shù)組中消失的數(shù)字 哈希表

C語言每日一練--------Day(11),c語言天天練,c語言,C語言每日一題,哈希表

??博主csdn個(gè)人主頁(yè):小小unicorn
?專欄分類:C語言天天練
??代碼倉(cāng)庫(kù):小小unicorn的代碼倉(cāng)庫(kù)??
??????關(guān)注我?guī)銓W(xué)習(xí)編程知識(shí)

題目一:

題目描述:

寫一個(gè)函數(shù),求兩個(gè)整數(shù)之和,要求在函數(shù)體內(nèi)不得使用+、-、*、/四則運(yùn)算符號(hào)。
數(shù)據(jù)范圍:兩個(gè)數(shù)都滿足
?10≤n≤1000
進(jìn)階:空間復(fù)雜度 O(1),時(shí)間復(fù)雜度 O(1)

C語言每日一練--------Day(11),c語言天天練,c語言,C語言每日一題,哈希表

解題思路:

巧用位運(yùn)算: 1、num1 & num2,與運(yùn)算,得到的是2個(gè)數(shù)都是1的位置,如果進(jìn)行加法,則需要進(jìn)位,m =(num1 & num2)<< 1,得到進(jìn)位后的數(shù)。

2、num1 ^ num2,異或,得到的是2個(gè)數(shù)1個(gè)為0另一個(gè)為1的位置,如果進(jìn)行加法,則不需要進(jìn)位。n = num1 ^ num2,此時(shí)如果m + n得到的就是兩數(shù)之和,但不能做加法,此時(shí)我們想到了或運(yùn)算。但如果將m、n直接進(jìn)行或運(yùn)算,無法保證不進(jìn)位,于是我們重復(fù)以上的過程。

3、while(n & m),當(dāng)n與上m得0 的時(shí)候,即再也不需要進(jìn)位了,此時(shí)將m | n返回即可。

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

int Add(int num1, int num2 ) 
{
    int m = 0;
    int n = 0;
    m = (num1 & num2) << 1;  // 需要進(jìn)位
    n = num1 ^
        num2;        //無需進(jìn)位    此時(shí)m + n就是答案,但不能做加法
    while (n & m) 
    { // 檢查是否還需要進(jìn)位
        num1 = m;
        num2 = n;
        m = (num1 & num2) << 1;  //需要進(jìn)位
        n = num1 ^ num2;        //無需進(jìn)位
    }

    return m | n;
}

結(jié)果情況:

C語言每日一練--------Day(11),c語言天天練,c語言,C語言每日一題,哈希表
符合題目情況,問題解決。

題目二:

題目描述:

給你一個(gè)含 n 個(gè)整數(shù)的數(shù)組 nums ,其中 nums[i] 在區(qū)間 [1, n] 內(nèi)。請(qǐng)你找出所有在 [1, n] 范圍內(nèi)但沒有出現(xiàn)在 nums 中的數(shù)字,并以數(shù)組的形式返回結(jié)果。

C語言每日一練--------Day(11),c語言天天練,c語言,C語言每日一題,哈希表

解題思路:

我們可以用一個(gè)哈希表記錄數(shù)組 nums 中的數(shù)字,由于數(shù)字范圍均在 [1,n] 中,記錄數(shù)字后我們?cè)倮霉1頇z查 [1,n]中的每一個(gè)數(shù)是否出現(xiàn),從而找到缺失的數(shù)字。

由于數(shù)字范圍均在 [1,n] 中,我們也可以用一個(gè)長(zhǎng)度為 nnn 的數(shù)組來代替哈希表。這一做法的空間復(fù)雜度是 O(n) 的。我們的目標(biāo)是優(yōu)化空間復(fù)雜度到 O(1)。

注意到 nums 的長(zhǎng)度恰好也為 n,能否讓 nums 充當(dāng)哈希表呢?

由于 nums 的數(shù)字范圍均在 [1,n]中,我們可以利用這一范圍之外的數(shù)字,來表達(dá)「是否存在」的含義。

具體來說,遍歷 nums,每遇到一個(gè)數(shù) x,就讓 nums[x?1] 增加 n。由于 nums 中所有數(shù)均在 [1,n] 中,增加以后,這些數(shù)必然大于 n。最后我們遍歷 nums,若 nums[i] 未大于 n,就說明沒有遇到過數(shù) i+1。這樣我們就找到了缺失的數(shù)字。

注意,當(dāng)我們遍歷到某個(gè)位置時(shí),其中的數(shù)可能已經(jīng)被增加過,因此需要對(duì) n 取模來還原出它本來的值。

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

int* findDisappearedNumbers(int* nums, int numsSize, int* returnSize) 
{
    for (int i = 0; i < numsSize; i++) 
    {
        int x = (nums[i] - 1) % numsSize;
        nums[x] += numsSize;
    }
    int* ret = malloc(sizeof(int) * numsSize);
    *returnSize = 0;
    for (int i = 0; i < numsSize; i++) 
    {
        if (nums[i] <= numsSize) 
        {
            ret[(*returnSize)++] = i + 1;
        }
    }
    return ret;
}

結(jié)果情況:

C語言每日一練--------Day(11),c語言天天練,c語言,C語言每日一題,哈希表
符合題目要求,問題解決。

總結(jié):

文章到這里就要告一段落了,有更好的想法或問題,歡迎評(píng)論區(qū)留言。
希望今天的練習(xí)能對(duì)您有所收獲,咱們下期見!文章來源地址http://www.zghlxwxcb.cn/news/detail-686608.html

到了這里,關(guān)于C語言每日一練--------Day(11)的文章就介紹完了。如果您還想了解更多內(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)文章

  • 【每日一題Day199】LC1010總持續(xù)時(shí)間可被 60 整除的歌曲 | 哈希表

    總持續(xù)時(shí)間可被 60 整除的歌曲【LC1010】 在歌曲列表中,第 i 首歌曲的持續(xù)時(shí)間為 time[i] 秒。 返回其總持續(xù)時(shí)間(以秒為單位)可被 60 整除的歌曲對(duì)的數(shù)量。形式上,我們希望下標(biāo)數(shù)字 i 和 j 滿足 i j 且有 (time[i] + time[j]) % 60 == 0 。 思路 由于需要求兩首歌的總時(shí)間可被60整除

    2024年02月03日
    瀏覽(23)
  • C語言每日一練--Day(15)

    C語言每日一練--Day(15)

    本專欄為c語言練習(xí)專欄,適合剛剛學(xué)完c語言的初學(xué)者。本專欄每天會(huì)不定時(shí)更新,通過每天練習(xí),進(jìn)一步對(duì)c語言的重難點(diǎn)知識(shí)進(jìn)行更深入的學(xué)習(xí)。 今日練習(xí)題: 珠璣妙算 兩數(shù)之和 ??博主csdn個(gè)人主頁(yè):小小unicorn ?專欄分類:C語言天天練 ??代碼倉(cāng)庫(kù):小小unicorn的

    2024年02月10日
    瀏覽(20)
  • C語言每日一練------------Day(7)

    C語言每日一練------------Day(7)

    本專欄為c語言練習(xí)專欄,適合剛剛學(xué)完c語言的初學(xué)者。本專欄每天會(huì)不定時(shí)更新,通過每天練習(xí),進(jìn)一步對(duì)c語言的重難點(diǎn)知識(shí)進(jìn)行更深入的學(xué)習(xí)。 今日練習(xí)題: 兩個(gè)數(shù)組的交集 ??? 雙指針 ??博主csdn個(gè)人主頁(yè):小小unicorn ?專欄分類:C語言天天練 ??代碼倉(cāng)庫(kù):

    2024年02月10日
    瀏覽(19)
  • C語言每日一練------Day(5)

    C語言每日一練------Day(5)

    本專欄為c語言練習(xí)專欄,適合剛剛學(xué)完c語言的初學(xué)者。本專欄每天會(huì)不定時(shí)更新,通過每天練習(xí),進(jìn)一步對(duì)c語言的重難點(diǎn)知識(shí)進(jìn)行更深入的學(xué)習(xí)。 今日練習(xí)題: 錯(cuò)誤的集合 密碼檢查 ??博主csdn個(gè)人主頁(yè):小小unicorn ?專欄分類:C語言天天練 ??代碼倉(cāng)庫(kù):小小unic

    2024年02月11日
    瀏覽(26)
  • C語言每日一練--------Day(8)

    C語言每日一練--------Day(8)

    本專欄為c語言練習(xí)專欄,適合剛剛學(xué)完c語言的初學(xué)者。本專欄每天會(huì)不定時(shí)更新,通過每天練習(xí),進(jìn)一步對(duì)c語言的重難點(diǎn)知識(shí)進(jìn)行更深入的學(xué)習(xí)。 今日練習(xí)題: 圖片整理 尋找數(shù)組下標(biāo) ??博主csdn個(gè)人主頁(yè):小小unicorn ?專欄分類:C語言天天練 ??代碼倉(cāng)庫(kù):小小u

    2024年02月10日
    瀏覽(21)
  • C語言每日一練------Day(6)

    C語言每日一練------Day(6)

    本專欄為c語言練習(xí)專欄,適合剛剛學(xué)完c語言的初學(xué)者。本專欄每天會(huì)不定時(shí)更新,通過每天練習(xí),進(jìn)一步對(duì)c語言的重難點(diǎn)知識(shí)進(jìn)行更深入的學(xué)習(xí)。 今日練習(xí)題: 整數(shù)轉(zhuǎn)換 異或 ??博主csdn個(gè)人主頁(yè):小小unicorn ?專欄分類:C語言天天練 ??代碼倉(cāng)庫(kù):小小unicorn的代碼

    2024年02月11日
    瀏覽(17)
  • c語言每日一練(11)

    c語言每日一練(11)

    前言: 每日一練系列,每一期都包含5道選擇題,2道編程題,博主會(huì)盡可能詳細(xì)地進(jìn)行講解,令初學(xué)者也能聽的清晰。每日一練系列會(huì)持續(xù)更新,暑假時(shí)三天之內(nèi)必有一更,到了開學(xué)之后,將看學(xué)業(yè)情況更新。 1.執(zhí)行完下面一段程序后輸出的值是() A、1? ? ?B、2? ? ?C、

    2024年02月11日
    瀏覽(22)
  • C語言每日一練------(Day3)

    C語言每日一練------(Day3)

    本專欄為c語言練習(xí)專欄,適合剛剛學(xué)完c語言的初學(xué)者。本專欄每天會(huì)不定時(shí)更新,通過每天練習(xí),進(jìn)一步對(duì)c語言的重難點(diǎn)知識(shí)進(jìn)行更深入的學(xué)習(xí)。 今天練習(xí)題的: 尼科徹斯定理 等差數(shù)列 ??博主csdn個(gè)人主頁(yè):小小unicorn ?專欄分類:C語言天天練 ??代碼倉(cāng)庫(kù):小小

    2024年02月10日
    瀏覽(17)
  • C語言:選擇+編程(每日一練Day12)

    C語言:選擇+編程(每日一練Day12)

    目錄 選擇題: 題一: 題二: 題三: 題四: 題五: 編程題: 題一:數(shù)組顛倒 思路一: 題二:?jiǎn)卧~倒排 思路一: 思路二: 本人實(shí)力有限可能對(duì)一些地方解釋和理解的不夠清晰,可以自己嘗試讀代碼,或者評(píng)論區(qū)指出錯(cuò)誤,望海涵! 感謝大佬們的一鍵三連!?感謝大佬們的

    2024年02月09日
    瀏覽(19)
  • C語言:選擇+編程(每日一練Day14)

    C語言:選擇+編程(每日一練Day14)

    目錄 選擇題: 題一: 題二: 題三: 題四: 題五: 編程題: 題一:珠璣妙算 思路一: 題二:兩數(shù)之和 思路一: 本人實(shí)力有限可能對(duì)一些地方解釋和理解的不夠清晰,可以自己嘗試讀代碼,或者評(píng)論區(qū)指出錯(cuò)誤,望海涵! 感謝大佬們的一鍵三連!?感謝大佬們的一鍵三連

    2024年02月09日
    瀏覽(22)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包