【[LeetCode]Number of Digit One,解题报告】教程文章相关的互联网学习教程文章

#Leetcode# 233. Number of Digit One【代码】

https://leetcode.com/problems/number-of-digit-one/ Given an integer n, count the total number of digit 1 appearing in all non-negative integers less than or equal to n.Example:Input: 13 Output: 6 Explanation: Digit 1 occurred in the following numbers: 1, 10, 11, 12, 13.代码:class Solution { public:int countDigitOne(int n) {int res = 0;long long a = 1, b = 1;while (n) {res += (n + 8) / 10 * a + (...

LeetCode 423. Reconstruct Original Digits from English【代码】

Given a non-empty string containing an out-of-order English representation of digits 0-9, output the digits in ascending order.Note:Input contains only lowercase English letters.Input is guaranteed to be valid and can be transformed to its original digits. That means invalid inputs such as "abc" or "zerone" are not permitted.Input length is less than 50,000.Example 1:Input: "owoztneoer"Output: "01...

LeetCode 423. Reconstruct Original Digits from English——学会观察,贪心思路【代码】

Given a non-empty string containing an out-of-order English representation of digits 0-9, output the digits in ascending order.Note:Input contains only lowercase English letters.Input is guaranteed to be valid and can be transformed to its original digits. That means invalid inputs such as "abc" or "zerone" are not permitted.Input length is less than 50,000.Example 1:Input: "owoztneoer"Output: "01...

[leetcode]258.Add Digits【代码】

题目Given a non-negative integer num, repeatedly add all its digits until the result has only one digit.Example:Input: 38 Output: 2 Explanation: The process is like: 3 + 8 = 11, 1 + 1 = 2. Since 2 has only one digit, return it.解法一思路不断地求新数字的 每个位 的和即可。代码class Solution {public int addDigits(int num) {int res = num;while(res / 10 != 0) {num = res;res = 0;while(num != 0) {res += ...

【Leetcode】Count Numbers with Unique Digits【代码】

题目链接:https://leetcode.com/problems/count-numbers-with-unique-digits/题目: Given a non-negative integer n, count all numbers with unique digits, x, where 0 ≤ x < 10n.Example: Given n = 2, return 91. (The answer should be the total numbers in the range of 0 ≤ x < 100, excluding [11,22,33,44,55,66,77,88,99])Hint:A direct way is to use the backtracking approach. Backtracking should contains...

Leetcode: Numbers With Repeated Digits【代码】

descriptionGiven a positive integer N, return the number of positive integers less than or equal to N that have at least 1 repeated digit. ExampleInput: 1000 Output: 262 分析这道题目中 testcase 有错误,所以真的不知道哪些 ac 的答案是怎么做到的? 犯错都是犯一样的错误~ count = 0 dup = [‘00‘, ‘11‘, ‘22‘, ‘33‘, ‘44‘, ‘55‘, ‘66‘, ‘77‘, ‘88‘, ‘99‘]for i in range(1, 1001):s = str(i)fo...

Leetcode: 902. Numbers At Most N Given Digit Set【代码】

descptionWe have a sorted set of digits D, a non-empty subset of {‘1‘,‘2‘,‘3‘,‘4‘,‘5‘,‘6‘,‘7‘,‘8‘,‘9‘}. (Note that ‘0‘ is not included.)Now, we write numbers using these digits, using each digit as many times as we want. For example, if D = {‘1‘,‘3‘,‘5‘}, we may write numbers such as ‘13‘, ‘551‘, ‘1351315‘.Return the number of positive integers that can be written...

[LeetCode] 738. Monotone Increasing Digits【代码】

Given a non-negative integer N, find the largest number that is less than or equal to N with monotone increasing digits.(Recall that an integer has monotone increasing digits if and only if each pair of adjacent digits x and y satisfy x <= y.) Example 1:Input: N = 10 Output: 9 Example 2:Input: N = 1234 Output: 1234 Example 3:Input: N = 332 Output: 299 Note: N is an integer in the range [0, 10^9...

【leetcode】233. Number of Digit One【代码】【图】

题目如下:Given an integer n, count the total number of digit 1 appearing in all non-negative integers less than or equal to n.Example:Input: 13 Output: 6 Explanation: Digit 1 occurred in the following numbers: 1, 10, 11, 12, 13.解题思路:本题是《编程之美》上的题目,详细分析如下图。代码如下:class Solution(object):def countDigitOne(self, n):""":type n: int:rtype: int"""if n <= 0:return 0res = 0sn...

leetcode: Add Digits

Given a non-negative integer num, repeatedly add all its digits until the result has onlyone digit. For example: Given num = 38, the process is like: 3+ 8 = 11, 1 + 1 = 2. Since 2 hasonly one digit, return it.Follow up: Could you do it without any loop/recursion in O(1) runtime? 题目描述:给出一个数组,不断地分割数字,直到这个数字是一个数字为止。题目很简单,直接上代码。 代码实现:class Solution { ...

LeetCode 1295. Find Numbers with Even Number of Digits【代码】

1295. Find Numbers with Even Number of Digits(统计位数为偶数的数字)链接https://leetcode-cn.com/problems/find-numbers-with-even-number-of-digits题目给你一个整数数组?nums,请你返回其中位数为?偶数?的数字的个数。示例 1:输入:nums = [12,345,2,6,7896] 输出:2 解释: 12 是 2 位数字(位数为偶数)? 345 是 3 位数字(位数为奇数)?? 2 是 1 位数字(位数为奇数)? 6 是 1 位数字 位数为奇数)? 7896 是 4 位数字(...

[LeetCode] 902. Numbers At Most N Given Digit Set 最大为 N 的数字组合【代码】

We have a?sorted?set of digits?D, a non-empty subset of?{‘1‘,‘2‘,‘3‘,‘4‘,‘5‘,‘6‘,‘7‘,‘8‘,‘9‘}.? (Note that?‘0‘?is not included.)Now, we write numbers using these digits, using each digit as many times as we want.? For example, if?D = {‘1‘,‘3‘,‘5‘}, we may write numbers such as?‘13‘, ‘551‘, ‘1351315‘.Return the number of positive integers that can be written (using t...

Leetcode-5010 Digit Count in Range(范围内的数字计数)【代码】

1class Solution2{3public:4int count(int n, int x)5 {6int cnt = 0, k;7for (int i = 1; k = n / i; i *= 10)8 {9int high = k / 10; 10if (x == 0) 11 { 12if (high) 13 { 14 high--; 15 } 16else17 { 18break; 19 } 20 } 21 cnt += high * i; 22int c...

[LeetCode]Number of Digit One,解题报告【代码】

题目Given an integer n, count the total number of digit 1 appearing in all non-negative integers less than or equal to n.For example: Given n = 13, Return 6, because digit 1 occurred in the following numbers: 1, 10, 11, 12, 13.解题思路题目理解:题目的意思是给定一个数n,计算[0, n]的区间中1出现的次数。具体思路:在面试过程中如果被问到类似的题目,一定不要着急,因为这肯定是一道找规律的题目。最好的办法...

[LeetCode][JavaScript]Number of Digit One【代码】

Number of Digit OneGiven an integer n, count the total number of digit 1 appearing in all non-negative integers less than or equal to n.For example:Given n = 13,Return 6, because digit 1 occurred in the following numbers: 1, 10, 11, 12, 13. 数学题,真是为难了数学拙计的我了。递归分治,拿8192举栗子:把8192拆成:1-999 -> 递归(999)1000-1999 -> 1000个1 + 递归(999)2001-2999 -> 递归(999)..8000-8192 ->...