LeetCode.970-強力な整数(強力整数)

これは、喜びと喜びの最初の本である367、最初の更新395ピアンオリジナル

01の質問と準備ができて見えます

今日導入さLeetCodeにおける演算問題Easy最初のレベル229(全体のタイトル番号がタイトル970)。2つの正の整数を考えるxy、いくつかの整数のための場合i >= 0とでj >= 0等しくx^i + y^j、その整数は強力です。

戻り値は以下に等しいboundすべての強力な整数のリスト。

あなたは、任意の順序で答えを返すことができます。あなたの答えでは、それぞれの値は、最高1回表示されます。例えば:

入力:Y、X = 2、= 3 、10 =結合
[2,3,4,5,7,9,10]:出力
説明:
2 + 0 = 2 ^ 3 ^ 0
3 = 2 + 1 ^ 3 ^ 0を
4 + 0 = 2 ^ 3 ^ 1
5 = 2 + 1 ^ 3 ^ 1
。7 = 2 ^ 2 ^ 3 1 +
9 = 2 ^ 3 ^ 3 + 0
10 = 0 + 2 ^ 2 ^ 3

入力:X = 3、Y = 5 、バインド= 15
出力:[2,4,6,8,10,14]

注意

  • 1 <= X <= 100

  • 1 <= Y <= 100

  • 0 <=結合<= 10 ^ 6

02第一溶液

判定条件xまたはyがあるので、直接タイトルを翻訳することができ、特別なスキルは、あまり少数政党よりも、それを注意する必要がないbound場合、xまたはy、1の時のように、何の力が1になることはありませうことは下回っているだろうbound、それは無限ループになります。

public List<Integer> powerfulIntegers(int x, int y, int bound) {
    Set<Integer> set = new HashSet<Integer>();
    for (int i=0; Math.pow(x, i) < bound; i++) {
        for (int j=0; Math.pow(y, j) < bound; j++) {
            int sum = (int)Math.pow(x, i)+(int)Math.pow(y, j);
            if (sum <= bound) {
                set.add((int)sum);
            }
            // y等于1时,容易造成死循环,要结束掉
            if (y == 1) {
                break;
            }
        }
        // x等于1时,容易造成死循环,要结束掉
        if (x == 1) {
            break;
        }
    }
    return new ArrayList<>(set);
}


03第二の溶液

上記の最初のソリューションのために、我々は助けることができないMathクラスのpowメソッドを、総交換を掛け、アイデアは同じです。

public List<Integer> powerfulIntegers2(int x, int y, int bound) {
    Set<Integer> set = new HashSet<Integer>();
    for (int i=1; i<bound; i *= x) {
        for (int j=1; j<bound; j *= y) {
            if (i+j <= bound) {
                set.add(i+j);    
            }
            if (y == 1) {
                break;
            }
        }
        if (x == 1) {
            break;
        }
    }
    return new ArrayList<>(set);
}


04まとめ

テーマ別のアルゴリズムは、継続的にされている日以上7ヶ月、特集記事のアルゴリズム235件の +記事、公衆番号]ダイアログボックスの返信[ データ構造とアルゴリズム ]、[ アルゴリズム ]、[ データ構造 ]のいずれかの記事のコレクションのシリーズを取得するキーワード。

それは、すべてだあなたは何か良い解決策のアイデア、提案やその他の問題がある場合、あなたは以下のコメントを交換することができ、親指、メッセージ転送およびサポートは、私にとっての最大の報酬です!

おすすめ

転載: www.cnblogs.com/xiaochuan94/p/11105760.html