最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C/C++題解LeetCode1295統(tǒng)計(jì)位數(shù)為偶數(shù)的數(shù)字

 更新時(shí)間:2023年01月03日 10:49:00   作者:劉09k11  
這篇文章主要為大家介紹了C/C++題解LeetCode1295統(tǒng)計(jì)位數(shù)為偶數(shù)的數(shù)字示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

題目描述

1295. 統(tǒng)計(jì)位數(shù)為偶數(shù)的數(shù)字 - 力扣(LeetCode)

給你一個(gè)整數(shù)數(shù)組 nums,請(qǐng)你返回其中位數(shù)為 偶數(shù) 的數(shù)字的個(gè)數(shù)。

示例 1:

輸入:nums = [12,345,2,6,7896]
輸出:2
解釋:
12 是 2 位數(shù)字(位數(shù)為偶數(shù)) 
345 是 3 位數(shù)字(位數(shù)為奇數(shù))  
2 是 1 位數(shù)字(位數(shù)為奇數(shù)) 
6 是 1 位數(shù)字 位數(shù)為奇數(shù)) 
7896 是 4 位數(shù)字(位數(shù)為偶數(shù))  
因此只有 12 和 7896 是位數(shù)為偶數(shù)的數(shù)字

示例 2:

輸入:nums = [555,901,482,1771]
輸出:1 
解釋: 
只有 1771 是位數(shù)為偶數(shù)的數(shù)字。

提示:

1 <= nums.length <= 500

1 <= nums[i] <= 10^5

思路分析

題目要求是十進(jìn)制數(shù)求位數(shù),所以最先想到的思路就是依次除進(jìn)制數(shù)10取商,然后再除,獲取到做除法的次數(shù)即為位數(shù)

此處可以使用遞歸,也可以使用for循環(huán), 如果是其他進(jìn)制數(shù),只需要修改結(jié)束條件和除數(shù)

題目給的條件 1< num < 10^5, 所以最多循環(huán)五次,不用考慮性能問(wèn)題導(dǎo)致時(shí)間超時(shí)

默認(rèn)位數(shù)是值1 遞歸結(jié)束條件就是 是否 < 10,遞歸體就是將當(dāng)前位和之前的位數(shù)求和.求解即可

利用to_string函數(shù)可以將整數(shù)轉(zhuǎn)換成字符串

然后用string類自帶的求長(zhǎng)度函數(shù)可以求出有幾位

然后直接對(duì)2求余就知道是奇數(shù)還是偶數(shù)了。

AC 代碼

class Solution {
public:
    int getLengthOfNumber (int num) {
    int lenght = 1;
    if (num < 10) {
        return lenght;
    }
    num = num / 10;
    lenght =  getLengthOfNumber(num) + lenght;
    return lenght;
}
    int findNumbers(vector<int>& nums) {
        int num = 0;
        int length = (int)nums.size();
        for (int i = 0 ; i < length; i++) {
            int length = getLengthOfNumber(nums[i]);
            if (length % 2 == 0) {
                num++;
            }
        }
        return num;
    }
};
class Solution {
public:
    int findNumbers(vector<int>& nums) {
        int count = 0;
        for(auto v : nums)
        {
            string x = to_string(v);
            if(x.size()%2 == 0)
                count++;
        }
        return count;
    }
};

將int轉(zhuǎn)為String

調(diào)用.length,然后%2==0即為偶數(shù) - 統(tǒng)計(jì)位數(shù)為偶數(shù)的數(shù)字

代碼

class Solution {
    public int findNumbers(int[] nums) {
        int res=0;
        for(int i:nums){
            if(String.valueOf(i).length()%2==0){
                res++;
            }
        }
???????        return res;
    }
}

3種方法 - 統(tǒng)計(jì)位數(shù)為偶數(shù)的數(shù)字

1. 把數(shù)字轉(zhuǎn)成字符串

public int findNumbers(int[] nums) {
    int count = 0;
    for (int i = 0; i < nums.length; i++) {
        if (String.valueOf(nums[i]).length() % 2 == 0) {
            count++;
        }
    }
    return count;
}

2. 數(shù)字循環(huán)除10,統(tǒng)計(jì)等于0的時(shí)候除10的次數(shù),偶數(shù)次則該數(shù)為偶數(shù)位

public int findNumbers(int[] nums) {
    int count = 0;
    for (int i = 0; i < nums.length; i++) {
        int N = nums[i];
        //記錄除10的次數(shù)
        int countTen = 0;
        while (N != 0) {
            N/=10;
            countTen++;
        }
        //如果除10的次數(shù)是偶數(shù)次,則該數(shù)為偶數(shù)位數(shù)
        if (countTen % 2 == 0) {
            count++;
        }
    }
    return count;
}

3. 已知范圍為1 <= nums[i] <= 10^5,所以只有兩個(gè)區(qū)間內(nèi)的數(shù)為偶數(shù)位10~99以及1000~9999

public int findNumbers(int[] nums) {
    int count=0;
    for(int i=0;i<nums.length;++i){
        if((nums[i]>=10&&nums[i]<100)||(nums[i]>=1000&&nums[i]<10000))
            count++;
    }
    return count;        
}

以上就是C/C++題解LeetCode1295統(tǒng)計(jì)位數(shù)為偶數(shù)的數(shù)字的詳細(xì)內(nèi)容,更多關(guān)于C/C++統(tǒng)計(jì)位數(shù)為偶數(shù)字的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • c++查詢最短路徑示例

    c++查詢最短路徑示例

    這篇文章主要介紹了c++查詢最短路徑示例,需要的朋友可以參考下
    2014-05-05
  • C++ 情懷游戲掃雷的實(shí)現(xiàn)流程詳解

    C++ 情懷游戲掃雷的實(shí)現(xiàn)流程詳解

    掃雷是電腦上很經(jīng)典很經(jīng)典的傳統(tǒng)老游戲,從小編第一次摸到計(jì)算機(jī)開(kāi)始就玩過(guò)掃雷,雖然當(dāng)時(shí)并不理解玩法原理,但終是第一次玩電腦游戲,下面來(lái)從掃雷的前世今生講起
    2021-11-11
  • 與ASCII碼相關(guān)的C語(yǔ)言字符串操作函數(shù)

    與ASCII碼相關(guān)的C語(yǔ)言字符串操作函數(shù)

    這篇文章主要介紹了與ASCII碼相關(guān)的C語(yǔ)言字符串操作函數(shù),分別是將字符轉(zhuǎn)換為ASCII碼的toascii()函數(shù)和根據(jù)ASCII碼進(jìn)行字符串比較的strcoll()函數(shù),需要的朋友可以參考下
    2015-08-08
  • C和C++中argc和argv的含義及用法詳解

    C和C++中argc和argv的含義及用法詳解

    argv 是 argument vector的縮寫(xiě),表示傳入main函數(shù)的參數(shù)序列或指針,這篇文章主要介紹了C和C++中argc和argv的含義以及用法,需要的朋友可以參考下
    2022-11-11
  • Qt創(chuàng)建SQlite數(shù)據(jù)庫(kù)的示例代碼

    Qt創(chuàng)建SQlite數(shù)據(jù)庫(kù)的示例代碼

    本文主要介紹了Qt創(chuàng)建SQlite數(shù)據(jù)庫(kù)的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • 淺談C++中對(duì)象的復(fù)制與對(duì)象之間的相互賦值

    淺談C++中對(duì)象的復(fù)制與對(duì)象之間的相互賦值

    這篇文章主要介紹了淺談C++中對(duì)象的復(fù)制與對(duì)象之間的相互賦值,是C語(yǔ)言入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-09-09
  • 深入淺出理解C語(yǔ)言初識(shí)結(jié)構(gòu)體

    深入淺出理解C語(yǔ)言初識(shí)結(jié)構(gòu)體

    C?數(shù)組允許定義可存儲(chǔ)相同類型數(shù)據(jù)項(xiàng)的變量,結(jié)構(gòu)是?C?編程中另一種用戶自定義的可用的數(shù)據(jù)類型,它允許你存儲(chǔ)不同類型的數(shù)據(jù)項(xiàng),本篇讓我們來(lái)了解C?的結(jié)構(gòu)體
    2022-02-02
  • C語(yǔ)言 數(shù)據(jù)類型詳細(xì)介紹

    C語(yǔ)言 數(shù)據(jù)類型詳細(xì)介紹

    本文主要講解C語(yǔ)言 數(shù)據(jù)類型,這里整理了詳細(xì)的數(shù)據(jù)類型的資料,希望能幫助剛剛開(kāi)始學(xué)習(xí)C語(yǔ)言的同學(xué)
    2016-08-08
  • 基于C語(yǔ)言指令的深入分析

    基于C語(yǔ)言指令的深入分析

    本篇文章是對(duì)C語(yǔ)言的指令進(jìn)行了詳細(xì)的分析與介紹,需要的朋友參考下
    2013-05-05
  • c++ 深入理解歸并排序的用法

    c++ 深入理解歸并排序的用法

    歸并排序是典型分治思想的代表——首先把原問(wèn)題分解為兩個(gè)或多個(gè)子問(wèn)題,然后求解子問(wèn)題的解,最后使用子問(wèn)題的解來(lái)構(gòu)造出原問(wèn)題的解
    2022-03-03

最新評(píng)論

伊金霍洛旗| 德州市| 嘉禾县| 会同县| 紫金县| 江西省| 葵青区| 登封市| 莱芜市| 陇南市| 高邮市| 武宣县| 安义县| 彭州市| 化隆| 南昌县| 革吉县| 包头市| 兴国县| 炉霍县| 新晃| 神池县| 沂源县| 台前县| 芮城县| 凤阳县| 乐安县| 义马市| 衡东县| 荥阳市| 来凤县| 祁阳县| 什邡市| 龙山县| 开平市| 西华县| 明光市| 信丰县| 凤城市| 呼玛县| 伊金霍洛旗|