どうすれば連結不可能な値を確実に返すことができますか?

人身攻撃

したがって、この再帰的な教員機能がどのように機能するかは誰もが知っています。

public static int fac(int number) {
    return (number > 1) ? number * fac(number - 1) : number;
}

引数として5を使用してこれを呼び出すと、次のように評価されます。

return 5 * 4 * 3 * 2 * 1

ここまでは順調ですね。しかし、返したい値を連結できない場合はどうなりますか?たとえば、いくつかのリストを返したい場合:

public static List<Integer> getSubarraysOf(List<Integer> array) {
    if (array.size() <= 1) {
        return array;
    }
    return array + getSubarraysOf(array.subList(1,array.size() - 1));
}

もちろん、これは機能しません!これが機能すると想像できる唯一の方法は、結果のリストが追加されるグローバル変数(リストを含むリスト)を参照するか、結果のリストをパラメーターとして導入することです。どちらの解決策もにおいがするので、私よりも賢い解決策があるのではないかと思います。

バティアエフ

このような解決策をお探しですか

public static void main(String [] args)
    List<Integer> list = new ArrayList<>();
    for (int i = 1; i < 6; ++i) list.add(i);
    System.out.println("1### " + list);
    System.out.println("2### " + getSubArraysOf(list));
}

private static List<Integer> getSubArraysOf(List<Integer> array) {

    List<Integer> result = new ArrayList<>();
    for (int i = 0; i < array.size(); ++i) {
        result.addAll(array.subList(0, array.size() - i));
    }
    return result;
}

以下の結果が得られました

1### [1, 2, 3, 4, 5]
2### [1, 2, 3, 4, 5, 1, 2, 3, 4, 1, 2, 3, 1, 2, 1]

または多分そのような

public static void main(String [] args)
    List<Integer> list = new ArrayList<>();
    list.add(5);
    System.out.println("1### " + list);
    System.out.println("2### " + getSubArraysOf(list));
}

private static List<Integer> getSubArraysOf(List<Integer> array) {

    int lastItem = array.get(array.size() - 1);
    if (lastItem == 1) return array;
    array.add(--lastItem);
    return getSubArraysOf(array);
}

結果で

1### [5]
2### [5, 4, 3, 2, 1]

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

どうすればプロトコルを「明示的に」迅速に実装できますか?それが不可能な場合、なぜですか?

分類Dev

Cで配列を返すことが不可能であることは実際にはどういう意味ですか?

分類Dev

それが不可能な場合、減算を停止するにはどうすればよいですか?

分類Dev

どうすれば明確な結果を得ることができますか?

分類Dev

RAIIが不可能な場合にC ++で「try / finally」を実行するにはどうすればよいですか?

分類Dev

nodejsで約束します。どうすれば結果を連鎖させることができますか

分類Dev

OpenStructにキーが存在しない場合、どうすればnilを返すことができますか?

分類Dev

決定不可能なインスタンスが実際にコンパイラをハングさせるにはどうすればよいですか?

分類Dev

JSマップに値が含まれているかどうかを確認し、そのキーを返すようにすることは可能ですか?

分類Dev

どうすればこれを繰り返すことができますか?

分類Dev

Schemeのreadに値を保存するにはどうすればよいですか?それともそれは不可能ですか?

分類Dev

0を0.0に追加するとき、結果が0ではなく0.0であることを確認するにはどうすればよいですか?

分類Dev

配列に値を付加することは不可能ではありません。ボタン/配列/画像に値を追加するにはどうすればよいですか?

分類Dev

関数が常に値を返すことを確認するにはどうすればよいですか(別名「終わりから外れない」)?

分類Dev

これを返さないようにするために、コンストラクタはどのような値を返すことができますか?

分類Dev

バグを再現不可能としてマークするにはどうすればよいですか?

分類Dev

Kivy:編集不可能なテキスト入力を行うにはどうすればよいですか?

分類Dev

実行可能ファイル(バイナリファイル)の標準的な命名方法と、ファイルに印刷不可能な文字が含まれているかどうかを確認する方法は?

分類Dev

random()を使用するときに、繰り返し番号がないことを確認するにはどうすればよいですか?

分類Dev

djangoを使用するときに繰り返しデータがないことを確認するにはどうすればよいですか?

分類Dev

HashMapに値がある場合、どうすれば返すことができますか

分類Dev

レイヤーで微分不可能な操作を見つけるにはどうすればよいですか?

分類Dev

Sparqlクエリ結果の読み取り不可能な部分を削除するにはどうすればよいですか?

分類Dev

Sparqlクエリ結果の読み取り不可能な部分を削除するにはどうすればよいですか?

分類Dev

どうすればこれを永遠に繰り返すことができますか?

分類Dev

どうすればHttp応答を返すことができますか?

分類Dev

どうすれば自分の約束を返すことができますか?

分類Dev

どうすればプロミスを返すことができますか?

分類Dev

ジェネリッククラスの型名として文字列を指定すると、実行時にインスタンスを作成するにはどうすればよいですか。それが不可能な場合、別の方法はありますか?

Related 関連記事

  1. 1

    どうすればプロトコルを「明示的に」迅速に実装できますか?それが不可能な場合、なぜですか?

  2. 2

    Cで配列を返すことが不可能であることは実際にはどういう意味ですか?

  3. 3

    それが不可能な場合、減算を停止するにはどうすればよいですか?

  4. 4

    どうすれば明確な結果を得ることができますか?

  5. 5

    RAIIが不可能な場合にC ++で「try / finally」を実行するにはどうすればよいですか?

  6. 6

    nodejsで約束します。どうすれば結果を連鎖させることができますか

  7. 7

    OpenStructにキーが存在しない場合、どうすればnilを返すことができますか?

  8. 8

    決定不可能なインスタンスが実際にコンパイラをハングさせるにはどうすればよいですか?

  9. 9

    JSマップに値が含まれているかどうかを確認し、そのキーを返すようにすることは可能ですか?

  10. 10

    どうすればこれを繰り返すことができますか?

  11. 11

    Schemeのreadに値を保存するにはどうすればよいですか?それともそれは不可能ですか?

  12. 12

    0を0.0に追加するとき、結果が0ではなく0.0であることを確認するにはどうすればよいですか?

  13. 13

    配列に値を付加することは不可能ではありません。ボタン/配列/画像に値を追加するにはどうすればよいですか?

  14. 14

    関数が常に値を返すことを確認するにはどうすればよいですか(別名「終わりから外れない」)?

  15. 15

    これを返さないようにするために、コンストラクタはどのような値を返すことができますか?

  16. 16

    バグを再現不可能としてマークするにはどうすればよいですか?

  17. 17

    Kivy:編集不可能なテキスト入力を行うにはどうすればよいですか?

  18. 18

    実行可能ファイル(バイナリファイル)の標準的な命名方法と、ファイルに印刷不可能な文字が含まれているかどうかを確認する方法は?

  19. 19

    random()を使用するときに、繰り返し番号がないことを確認するにはどうすればよいですか?

  20. 20

    djangoを使用するときに繰り返しデータがないことを確認するにはどうすればよいですか?

  21. 21

    HashMapに値がある場合、どうすれば返すことができますか

  22. 22

    レイヤーで微分不可能な操作を見つけるにはどうすればよいですか?

  23. 23

    Sparqlクエリ結果の読み取り不可能な部分を削除するにはどうすればよいですか?

  24. 24

    Sparqlクエリ結果の読み取り不可能な部分を削除するにはどうすればよいですか?

  25. 25

    どうすればこれを永遠に繰り返すことができますか?

  26. 26

    どうすればHttp応答を返すことができますか?

  27. 27

    どうすれば自分の約束を返すことができますか?

  28. 28

    どうすればプロミスを返すことができますか?

  29. 29

    ジェネリッククラスの型名として文字列を指定すると、実行時にインスタンスを作成するにはどうすればよいですか。それが不可能な場合、別の方法はありますか?

ホットタグ

アーカイブ