357.count-numbers-with-unique-digits.go 254 B

123456789101112
  1. func countNumbersWithUniqueDigits(n int) int {
  2. // [0, 10^n)
  3. // 0 1 2 3
  4. // 1 10 91 739 ...
  5. cnt := 1
  6. for i, m, j := 1, 0, 0; i <= n && i <= 10; i, cnt = i+1, cnt+m {
  7. for m, j = 9, 1; j < i; j++ {
  8. m *= 10 - j
  9. }
  10. }
  11. return cnt
  12. }