データ構造を使用して次の問題を解決するにはどうすればよいですか?
3^i * 5^J * 7^k ここで、i、j、k >=0。この数列で 10,000 番目に小さい数を見つけます。
次の方法でセットを使用して解決しましたが、これは効率的な解決策ではないと感じています。
- 初期セットは (1)
- セットの各要素に 3、5、7 の数字を掛けて、次のセットを取得します。
- 前のセットと和集合を取ります。
- セットのサイズが 10,000 以上の場合、乗算のプロセスを停止し、セットを昇順に並べ替えます。
- セットの 10,000 番目の要素は、10,000 番目に小さい数になります。
この問題をより効率的に解決できる他のデータ構造はありますか?