357. 计算各个位数不同的数字个数

简介: 357. 计算各个位数不同的数字个数

正文


题目描述:

给定一个非负整数 n,计算各位数字都不同的数字 x 的个数,其中 0 ≤ x < 10n 。

示例:

输入: 2

输出: 91

解释: 答案应为除去 11,22,33,44,55,66,77,88,99 外,在 [0,100) 区间内的所有数字。

通过次数12,316提交次数23,992


回溯算法:

10.png

官网大佬写的算法:

11.png

更有甚者写的代码:

12.png

相关文章
|
8月前
|
人工智能 Java C++
计算逆序对数
计算逆序对数
48 0
|
算法 测试技术 C#
C++数位算法:数字1的个数
C++数位算法:数字1的个数
|
8月前
|
算法 测试技术 C#
【位运算 拆位法 二分】3007. 价值和小于等于 K 的最大数字
【位运算 拆位法 二分】3007. 价值和小于等于 K 的最大数字
|
8月前
|
Python
计算小于或等于n的非负整数区间包含的1的数量
计算小于或等于n的非负整数区间包含的1的数量
75 0
|
8月前
[leetcode 数位计算]2520. 统计能整除数字的位数
[leetcode 数位计算]2520. 统计能整除数字的位数
|
算法 C++ Python
每日算法系列【LeetCode 357】计算各个位数不同的数字个数
每日算法系列【LeetCode 357】计算各个位数不同的数字个数
115 0
打印0~100000之间的水仙花数, 水仙花数指一个n位数,其各位数的n次方之和正好等于该数本身
打印0~100000之间的水仙花数, 水仙花数指一个n位数,其各位数的n次方之和正好等于该数本身
122 0
【LeetCode137】只出现一次的数字 II(每个数的第j列元素相加余3)
审题nums[i]都在int范围内(32位二进制),对于每个num[i]的二进制数,对于第j个位置的元素都相加,并且最后对结果的二进制数,其第j个位置的元素依次进行余3操作。
183 0
【LeetCode137】只出现一次的数字 II(每个数的第j列元素相加余3)
|
Java
JavaA除以B本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数。你需要输出商数Q和余数R,使得A = B * Q + R成立。
JavaA除以B本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数。你需要输出商数Q和余数R,使得A = B * Q + R成立。
105 0
统计正数和负数的个数然后计算这些数的平均值(循环、数组解法)
统计正数和负数的个数然后计算这些数的平均值(循环、数组解法)
223 0