[Swift]LeetCode357. 计算各个位数不同的数字个数 | Count Numbers with Unique Digits

Given a non-negative integer n, count all numbers with unique digits, x, where 0 ≤ x < 10n.

Example:

Input: 2
Output: 91
Explanation: The answer should be the total numbers in the range of 0 ≤ x < 100,
             excluding 11,22,33,44,55,66,77,88,99


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

示例:

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

8ms
 1 class Solution {
 2     func countNumbersWithUniqueDigits(_ n: Int) -> Int {
 3         if n == 0 {return 1}
 4         if n == 1 {return 10}
 5         var res:Int = 10
 6         var cnt:Int = 9
 7         for i in 2...n
 8         {
 9             cnt *= (11 - i)
10             res += cnt
11         }
12         return res
13     }
14 }


12ms

1 class Solution {
2     func countNumbersWithUniqueDigits(_ n: Int) -> Int {
3         var nums = [1, 10, 91, 739, 5275, 32491, 168571, 712891, 2345851, 5611771, 8877691]
4         return nums[min(10, n)]
5     }
6 }

原文地址:https://www.cnblogs.com/strengthen/p/10276840.html

时间: 2024-11-09 11:11:14

[Swift]LeetCode357. 计算各个位数不同的数字个数 | Count Numbers with Unique Digits的相关文章

[LeetCode] 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

357 Count Numbers with Unique Digits 计算各个位数不同的数字个数

给定一个非负整数 n,计算各位数字都不同的数字 x 的个数,其中 0 ≤ x < 10n.示例:给定 n = 2,返回 91.(答案应该是除[11,22,33,44,55,66,77,88,99]外,0 ≤ x < 100 间的所有数字) 详见:https://leetcode.com/problems/count-numbers-with-unique-digits/description/ C++: class Solution { public: int countNumbersWith

357. 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]) Credits:Special

算法66------计算各个位数不同的数字个数【动态规划】

一.题目:计算各个位数不同的数字个数 给定一个非负整数 n,计算各位数字都不同的数字 x 的个数,其中 0 ≤ x < 10n . 示例: 输入: 2 输出: 91 解释: 答案应为除去 11,22,33,44,55,66,77,88,99 外,在 [0,100) 区间内的所有数字. 思路:动态规划 dp[i]表示 i 位数范围内[0,10^i]各位数字都不同的数字 x 的个数. 当 n = 1 时, 只有 0 符合条件, 当 n = 10 时, 0 - 9 符合条件 (10个); 当 n >

给出一个区间[a, b],计算区间内“神奇数”的个数。 神奇数的定义:存在不同位置的两个数位,组成一个两位数(且不含前导0),且这个两位数为质数。 比如:153,可以使用数字3和数字1组成13,13是质数,满足神奇数。同样153可以找到31和53也为质数,只要找到一个质数即满足神奇数。

给出一个区间[a, b],计算区间内"神奇数"的个数.神奇数的定义:存在不同位置的两个数位,组成一个两位数(且不含前导0),且这个两位数为质数.比如:153,可以使用数字3和数字1组成13,13是质数,满足神奇数.同样153可以找到31和53也为质数,只要找到一个质数即满足神奇数. 输入描述: 输入为两个整数a和b,代表[a, b]区间 (1 ≤ a ≤ b ≤ 10000). 输出描述: 输出为一个整数,表示区间内满足条件的整数个数 输入例子: 11 20 输出例子: 6 1 #in

计算数值区间内某个数字出现的次数

计算数值区间内某个数字 9 出现的次数 1 程序的实现 2 功能测试 3 程序的优化 4 添加调试代码 ·············· 1 程序的实现 vim 9.c gcc 9.c ./a.out 图片太大,把显示的列数修改为10. 2 功能测试 测试一个数字内部的 9 能不能准确测定. 修改: min = 9938; max = 9939; ...... ./a.out Display num:9 in 9938 and 9939. There are. |   9938   9939 Fro

牛牛想对一个数做若干次变换,直到这个数只剩下一位数字。 变换的规则是:将这个数变成 所有位数上的数字的乘积。比如285经过一次变换后转化成2*8*5=80. 问题是,要做多少次变换,使得这个数变成个位数。

牛牛想对一个数做若干次变换,直到这个数只剩下一位数字.变换的规则是:将这个数变成 所有位数上的数字的乘积.比如285经过一次变换后转化成2*8*5=80.问题是,要做多少次变换,使得这个数变成个位数. 输入描述: 输入一个整数.小于等于2,000,000,000. 输出描述: 输出一个整数,表示变换次数. 输入例子: 285 输出例子: 2 1 #include<stdio.h> 2 #include<stdlib.h> 3 int main() 4 { 5 int n; 6 sc

10.1 优化函数 在前面的章节中,我们已经知道,递归是 F# 中处理函数的主要控制流机制。我们第一次是使用它写一些进行计算的简单函数,例如,计算指定范围内的数字的和或阶乘。后来,我们发现它在处理递

10.1 优化函数 在前面的章节中,我们已经知道,递归是 F# 中处理函数的主要控制流机制.我们第一次是使用它写一些进行计算的简单函数,例如,计算指定范围内的数字的和或阶乘.后来,我们发现它在处理递归数据结构,最重要的列表是时,是无价的. 我们知道,递归也有一些局限性,堆栈溢出的可能性是最明显的一个:我们将会看到,某些递归计算非常低效.在命令式语言中,通常使用非递归函数,以避免出现问题:函数语言已经有方法解决这些问题,并可以高效地使用递归.首先要集中关注于正确性:如果一个额外的字节吹动堆栈,真正

Swift中计算String的长度

    extension String {     var length: Int { return countElements(self) }  // Swift 1.1 } extension String {     var length: Int { return count(self)         }  // Swift 1.2 }   let globe = "" // U+1F30D EARTH GLOBE EUROPE-AFRICA count(globe)