タイトル説明
これは、2、3及び5は醜い(醜い数)と呼ばれる素因数の数のみを含んでいます。それは7個の素因数が含まれているため、例えば6,8は、14醜いではなく、いくつかあります。伝統的に、我々は最初の醜い数として1を持っています。N醜い多数配列を通して上昇を求めます。
アイデア:醜いの各列のシーケンス番号は、次の番号が醜い見つけます
アレイ内の醜い次数が醜いA * 2、B *最小3、C * 5となる分の一定数を有していなければなりません。
分析:その数が2よりも大きい後* 2のその数が少ない醜いの現在の最大数よりも前の配列に*、現在の醜いの最大数、均等M3、M5を数醜いM2を有していなければなりません
クラスソリューション: デフGetUglyNumber_Solution(自己、インデックス): #ここに書き込みコード であれば、インデックス<1 : リターン0 RES = [1 ] T2 = T3 = T5 = 0 nextdex = 1 しばらく nextdex < インデックス: minNum =分(RES [T2] * 2、無[T3] * 3、無[T5] * 5 ) res.append(少ないです) #ペースまたは小さいが、考慮の各々の数取られる IF RES [T2]を* 2 <= minNum。 T2 + = 1 なら [T3] * 3 <= RES minNum。 T3 + = 1 なら [T5] * 5 <= RES minNum。 T5 + 1 = nextdex + = 1 リターン RES [nextdex - 1]