麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

357. Count Numbers with Unique Digits -Medium

2019-11-11 05:49:26
字體:
來源:轉載
供稿:網友

Question

Given a non-negative integer n, count all numbers with unique digits, x, where 0 ≤ x < 10n.

給出一個非負整數n,在 0 <= x <10 ^n 的范圍內,統計每一位都不重復的數字的個數

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])

Solution

想到的第一種方法是回溯,在個位數遍歷1 - 9,在其他位數上遍歷0-9(當然要注意已使用過的數字不能再使用),終止條件為當前的數字大于最大的數字(10 ^ n)

class Solution(object): def countNumbersWithUniqueDigits(self, n): """ :type n: int :rtype: int """ count = 1 # 因為個位數不能有0,所以個位數的循環放到回溯外面,分別統計一次個位數為 1 - 9 的元素不重復數字個數 for i in range(1, 10): selectable = list(range(10)) selectable.remove(i) count += self.solve(list(range(2, 10)), pow(10, n), i) return count def solve(self, selectable, max_num, current_num): count = 0 # 只要小于最大數字,都保存統計,否則返回 if current_num < max_num: count += 1 else: return count # 遍歷 0 - 9 數字 for index_s, s in enumerate(selectable): count += self.solve(selectable[:index_s] + selectable[index_s + 1:], max_num, current_num * 10 + s) return count

不過得到了 Time Limit Exceeded

第二種方法是動態規劃。

位數 不重復元素個數 總數
1 10 10
2 9 * 9 91
3 9 * 9 * 8 739
4 9 * 9 * 8 * 7 986410

考慮以上規律,我們只需保存兩個變量,一個是上一個位數的不重復元素個數dp,另一個是可選數字個數selectable,這樣我們就可以得到遞推式 dp = dp * selectable,同時我們額外在維護一個總數就可以了

class Solution(object): def countNumbersWithUniqueDigits(self, n): """ :type n: int :rtype: int """ if n == 0: return 1 selectable = 9 # 當前可選項個數 dp = 9 # 保存當前位數的元素不重復數字個數(不包括個位數) res = 10 # 元素不重復數字的總個數 # 個位數的情況已經統計完成了,所以只需要統計n - 1次 for _ in range(n - 1): if selectable > 0: dp = dp * selectable res += dp selectable -= 1 return res
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久久三级免费电影 | 一区二区三区日本在线观看 | 国产精品久久77777 | 久久99国产精品久久99果冻传媒 | 中文字幕国产亚洲 | 91avsese| 欧美韩国日本在线 | 国产午夜免费不卡精品理论片 | 666sao| 亚洲第五色综合网 | 国产精品自在线拍 | 亚洲第五色综合网 | 久久国产精品久久久久 | 久久欧美亚洲另类专区91大神 | 91短视频版高清在线观看www | 国产乱一区二区三区视频 | 丰满年轻岳中文字幕一区二区 | 午夜视频你懂的 | 国产剧情在线观看一区二区 | 少妇一级淫片高潮流水电影 | 国产亚洲精品久久久久婷婷瑜伽 | 九九热在线视频观看这里只有精品 | 一级做a爱片性色毛片高清 国产精品色在线网站 | 成人午夜在线免费观看 | 国产成人高清成人av片在线看 | 制服丝袜成人动漫 | 日韩黄在线观看 | 国产69精品久久99不卡免费版 | 日韩色视频 | 欧美日韩中文字幕在线视频 | 日本视频在线免费观看 | av久草| 少妇一级淫片免费放4p | 91av在线影院 | 精品国产一区二区亚洲人成毛片 | 99麻豆久久久国产精品免费 | 噜噜噜躁狠狠躁狠狠精品视频 | 亚洲国产综合在线观看 | bt 自拍 另类 综合 欧美 | 精品偷拍久久 | 视频一区国产 |