LeetCode刷题——统计各位数字都不同的数字个数#357#Medium

统计各位数字都不同的数字个数的思路探讨与源码
    统计各位数字都不同的数字个数的题目如下图,该题属于数学类和回溯类型的题目,主要考察对于回溯方法的使用和题目数学思路的理解。本文的题目作者想到2种方法,分别是排列组合方法和递推方法,其中排列组合方法使用Java进行编写,而递推方法使用Python进行编写,当然这可能不是最优的解法,还希望各位大佬给出更快的算法。
LeetCode刷题——统计各位数字都不同的数字个数#357#Medium_第1张图片
    本人认为该题目可以使用排列组合方法的思路进行解决,首先判断数字是否为0或者1,如果是0就返回1;如果是1就返回10,然后开始初始化结果变量和下标变量。开始遍历循环,用当前下标结果记录临时排列结果,然后再加到结果变量上,直到遍历结束后返回最终的结果。那么按照这个思路我们的Java代码如下:

#喷火龙与水箭龟
class Solution {
    public int countNumbersWithUniqueDigits(int n) {
        if (n == 0) {
            return 1;
        }
        if (n == 1) {
            return 10;
        }
        int resFinal = 10;
        int ind = 9;
        for (int jr = 0; jr < n - 1; jr++) {
            ind = ind * (9 - jr);
            resFinal = resFinal + ind;
        }
        return r

你可能感兴趣的:(LeetCode刷题,leetcode,java,算法,python,数据结构)