leecode_357 Count Numbers with Unique Digits
来源:互联网 发布:欧姬丝洗发水 知乎 编辑:程序博客网 时间:2024/06/04 20:28
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]
)
用DP解决问题:举个例子,n=3, 首先,肯定小于n=2的10倍;
再者,只有两位的unique的数,在末尾添上任意其中一个数,就不符合条件,有2*sum[2];
只有一位的unique的数, 在末尾添上与之一样的数,就不符合条件,有1*sum[3];
一位都没有的数,就是0,在末尾添上任意数都符合要求,于是就有0*sum[0];
所以,sum[n]=sum[n-1]*10-(n-1)*digi[n-1]-(n-2)*digi[n-2]-............0*digi[0]
c++实现:
class Solution {public: int countNumbersWithUniqueDigits(int n) { vector<int> digi; vector<int> sum; digi.push_back(1); digi.push_back(9); sum.push_back(1); sum.push_back(10); int sum_i=10; int temp=9; for (int i=2;i<=n;i++){ int a=sum[i-1]*10-temp; sum.push_back(a); digi.push_back(a-sum[i-1]); temp=temp+digi[i]*i; } return sum[n]; }};
- leecode_357 Count Numbers with Unique Digits
- Count Numbers with Unique Digits
- Count Numbers with Unique Digits
- Count Numbers with Unique Digits
- Count Numbers with Unique Digits
- Count Numbers with Unique Digits
- Count Numbers with Unique Digits
- Count Numbers with Unique Digits
- Count Numbers with Unique Digits
- Count Numbers with Unique Digits
- Count Numbers with Unique Digits
- Count Numbers with Unique Digits
- Count Numbers with Unique Digits
- 【LeetCode】357. Count Numbers with Unique Digits
- 357. Count Numbers with Unique Digits
- leetcode Count Numbers with Unique Digits
- LeetCode 357. Count Numbers with Unique Digits
- LeetCode:Count Numbers with Unique Digits
- centos上mysql
- Shortest Word Distance III
- Eclipse+ADT+Android SDK 搭建安卓开发环境
- ruby模块的概念、定义和使用
- Yet another Computer Vision Library? No!
- leecode_357 Count Numbers with Unique Digits
- ruby编程中的异常处理
- Permutations
- 转自杨肉的演讲台
- 【翻译】Tweepy 3.5.0 Doc (3) Code Snippets
- CF Round #358 D
- leecode_324 Wiggle Sort II
- State bank of India Shimla Himachal Pradesh Ifsc Codes
- Android 播放视频并获取指定时间的帧画面