• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • 面試題43. 1~n 整數中 1 出現的次數

    標簽: 刷題  刷LeetCode

    在這里插入圖片描述
    在這里插入圖片描述
    在這里插入圖片描述
    在這里插入圖片描述
    在這里插入圖片描述

    class Solution {
        public int countDigitOne(int n) {
            int ans = 0;
            int digit = 1;
            int high=n/10;
            int low = 0;
            int cur=n%10;
            while(high!=0||cur!=0){
                if(cur==0) ans+=digit*high;
                else if(cur==1) ans+=high*digit+low+1;
                else if(cur>1) ans+=(high+1)*digit;
                low+=cur*digit;
                digit*=10;
                cur=high%10;
                high/=10;
            }
            return ans; 
        }
    }
    
    版權聲明:本文為smile_study1原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/smile_study1/article/details/107109872

    智能推薦

    [leetCode]劍指 Offer 43. 1~n整數中1出現的次數

    遞歸  直觀思路是遍歷每一個數字,對每一個數字采用“%”“/”的方法取個位判斷是否為1然后累加。由于數字n有O(logn)為所以時間復雜度為O(nlogn)。應該考慮更快的算法。  假設輸入的數字n為21345,可以把它分為兩部分: 1~1345 1346~21345 先來分析1345~21345這部分。從萬位開始萬位出現1的次數...

    劍指 Offer 43. 1~n整數中1出現的次數

    輸入一個整數 n ,求1~n這n個整數的十進制表示中1出現的次數。 例如,輸入12,1~12這些整數中包含1 的數字有1、10、11和12,1一共出現了5次。 示例 1: 輸入:n = 12 輸出:5 示例 2: 輸入:n = 13 輸出:6 限制: 1 <= n < 2^31 這題好難…...

    劍指 Offer 43. 1~n整數中1出現的次數

    題目:劍指 Offer 43. 1~n整數中1出現的次數 劍指 Offer 43. 1~n整數中1出現的次數 題意: 輸入一個整數 n ,求1~n這n個整數的十進制表示中1出現的次數。 例如,輸入12,1~12這些整數中包含1 的數字有1、10、11和12,1一共出現了5次。 示例: 題解一: 首先看到這道題,我們會想到遍歷從1到n,然后計算每一個數中1的個數,然后相加即可。 這樣的時間復雜度是O...

    【劍指 Offer 43. 】1~n整數中1出現的次數

    題目:1~n整數中1出現的次數 思路: 以cur所指向的位數的數字為界,將數字分為三個部分: 左邊高位組成的數為high,右邊低位組成的數為low,cur指向數組的位數為digit; cur從低位依次遍歷到高位,累加cur在每一個位置上包含1的個數; 當cur所指的數字為0時,1出現的次數為: high * digit; 當cur所指的數字為1時,1出現的次數為: high * digit + l...

    Leetcode 劍指 Offer 43. 1~n 整數中 1 出現的次數

    輸入一個整數 n ,求1~n這n個整數的十進制表示中1出現的次數。 例如,輸入12,1~12這些整數中包含1 的數字有1、10、11和12,1一共出現了5次。 示例 1: 輸入:n = 12 輸出:5 示例 2: 輸入:n = 13 輸出:6 限制: 1 <= n < 2^31 C++ 對每位進行分析 思路描述:暴力解法就是遍歷一遍每個數字,然后把每個數字中 1 的數目加起來。但是在 ...

    猜你喜歡

    LeetCode 劍指 Offer 43. 1~n 整數中 1 出現的次數

    目錄結構 1.題目 2.題解 1.題目 輸入一個整數 n ,求1~n這n個整數的十進制表示中1出現的次數。 例如,輸入12,1~12這些整數中包含1 的數字有1、10、11和12,1一共出現了5次。 示例: 限制: 1 <= n < 2^31 來源:力扣(LeetCode) 鏈接:https://leetcode-cn.com/problems/1nzheng-shu-zho...

    數組刪除其中某個對象的方法

    數組刪除其中的對象或元素,在前端是比較常見的需求。 我現在比較常用的方法如下: 這種方法只適合刪除具有唯一標識的對象。 有沒有想要脫單的小伙伴,加入我們的脫單星球,認識更多優秀的小哥哥小姐姐 特此聲明,星球是免費的,但是創建星球的時候說是必須輸入金額,所以只能先私聊,我再加你免費加入!...

    圖床搭建以及圖床工具的使用

    為什么要用圖床和圖床工具? 比較下面三種md中的圖片url地址(均免費),你會使用哪一種? 選1?由于是本地路徑,文檔分享后給其他人打開后很可能顯示圖片加載失敗。 選2?雖然分享后可以顯示圖片,但能保證加載速度? 選3?我肯定選這種,即兼容2的瀏覽器訪問,又能保證訪問速度。 這樣就可以回答上面的問題了!保證瀏覽器訪問要用圖床,保證加載速度要用圖床工具,又不花錢想想就開心。 除此之外本篇博客還會講解...

    并發編程理論篇

    一、必備知識回顧 計算機又叫電腦,即通電的大腦,發明計算機是為了讓他通電之后能夠像人一樣去工作,并且它比人的工作效率更高,因為可以24小時不間斷 計算機五大組成部分 控制器 運算器 存儲器 輸入設備 輸出設備 計算機的核心真正干活的是CPU(控制器+運算器=中央處理器) 程序要想被計算機運行,它的代碼必須要先由硬盤讀到內存,之后cpu取指再執行 并發 看起來像同時運行的就可以稱之為并發 并行 真正...

    Java LinkedHashMap

    Java LinkedHashMap 前言 Map是我們在實際使用過程中常用的集合,HashMap在Java的實際開發中出鏡率很高,它通過hash算法實現了高效的非線程安全的集合,它有一個缺點就是,用戶插入集合的數據時無序,在我們需要一些有序的map的時候,我們就需要引入另外一個集合:LinkedHashMap。 LinkedHashMap是一個有序的非線程安全的集合,它是HashMap的子類,基...

    精品国产乱码久久久久久蜜桃不卡