【发布时间】:2019-07-20 03:29:22
【问题描述】:
https://leetcode.com/problems/numbers-with-repeated-digits/
给定一个正整数 N,返回小于或等于 N 且至少有 1 个重复数字的正整数个数。
示例 1:
输入:20 输出:1 解释:唯一至少有 1 个重复数字的正数 (
输入:100 输出:10 解释:至少有 1 个重复数字的正数(
输入:1000 输出:262
注意:
1
https://leetcode.com/problems/numbers-with-repeated-digits/discuss/256725/JavaPython-Count-the-Number-Without-Repeated-Digit 我发现这个解决方案有很多人喜欢。但它是用 Java/Python 编码的。任何人都可以帮助使用 Javascript 通过类似的逻辑对其进行编码。 真的很感谢...
python 解决方案:我不知道 set() 部分如何,如何使用 Javascript 来完成。
def numDupDigitsAtMostN(self, N): L = 地图(int,str(N + 1)) 分辨率,n = 0,长度(L)
def A(m, n):
return 1 if n == 0 else A(m, n - 1) * (m - n + 1)
for i in range(1, n): res += 9 * A(9, i - 1)
s = set()
for i, x in enumerate(L):
for y in range(0 if i else 1, x):
if y not in s:
res += A(9 - i, n - i - 1)
if x in s: break
s.add(x)
return N - res
【问题讨论】:
-
s 是类似数组的数据类型
标签: javascript python dynamic-programming