0
点赞
收藏
分享

微信扫一扫

LeetCode 每一日一题 2022-04-12

阿尚青子自由写作人 2022-04-13 阅读 55
leetcode

从今天起做一个自律的人,为了明天做一个懒人!

在这里插入图片描述

思路:

打表找规律
0 | 1
1 | 10
2 | 81 = 9 * 9
3 | 648 = 9 * 9 * 8

类似于高中的排列组合,
第一个数字有 9 种可能,每次的可能性依次减少1,根据简单打表可以发现这个规律。
需要注意对于0 和 1的特殊情况

class Solution {
public:
	int countNumbersWithUniqueDigits(int n) {
        if(n == 0){
            return 1;
        }
		int ret = 10, p = 9, cur = 9;
		while (n > 1) {
			ret += cur * p;
			cur *= p;
			p--;
			n--;
		}

		return ret;
	}
};
举报

相关推荐

0 条评论