zoukankan      html  css  js  c++  java
  • Java [Leetcode 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])

    解题思路:

    1. This problem can also be solved using a dynamic programming approach and some knowledge of combinatorics.
    2. Let f(k) = count of numbers with unique digits with length equals k.
    3. f(1) = 10, ..., f(k) = 9 * 9 * 8 * ... (9 - k + 2) [The first factor is 9 because a number cannot start with 0].

    代码如下:

    public class Solution {
        public int countNumbersWithUniqueDigits(int n) {
        	if(n == 0)
        		return 1;
        	int temp = 9;
        	int res = 0;
        	for(int i = 2; i <= n; i++){
        		temp *= (9 - i + 2);
        		res += temp;
        	}
        	return res + 10;
        }
    }
    

      

  • 相关阅读:
    openGL
    shader
    安卓2
    安卓
    错误整理
    3D图形学
    shaderlab
    MVC
    一、TCP扫描技术
    端口扫描技术
  • 原文地址:https://www.cnblogs.com/zihaowang/p/5731238.html
Copyright © 2011-2022 走看看