Number of Digit One LeetCode solution in Java
1class Solution {2int max(int a, int b) {3if (a > b) return a;4else return b;5}67int min(int a, int b) {8if (a > b) return b;9else return a;10}1112public int countDigitOne(int n) {13int c = 0;14for (int i = 1; i <= n; i *= 10) {15int divider = i * 10;16c += (n / divider) * i + min(max((n % divider - i + 1), 0), i);17}18return c;19}20}2122// T.C. - O(log n)