ホームページ  >  記事  >  バックエンド開発  >  指定された数値を挿入して形成される最小の数値を見つけます

指定された数値を挿入して形成される最小の数値を見つけます

王林
王林転載
2023-09-08 20:29:06758ブラウズ

指定された数値を挿入して形成される最小の数値を見つけます

指定された数値に数値を挿入するとは、指定された数値の前、後、または途中に新しい数値を追加することを意味します。私たちは数字と数字を与えられており、その数字にできるだけ小さな方法でその数字を加えなければなりません。挿入操作を容易にするために、数値を文字列に変換します。さらに、指定された数値が負の値になることもあるので、この場合を考慮する必要があります。

例例

Input1

の中国語訳は次のとおりです:

Input1

リーリー

説明 -指定された数値を加算できる場所が4つあり、結果は3124、1324、1234、1243になります。 4 つのうち、最後から 2 番目のものが最も小さいです。

Input2

の中国語訳は次のとおりです:

Input2

リーリー

説明 -指定された数値を加算できる場所が 4 つあり、結果は -3124、-1324、-1234、-1243 になります。 4 つのうち、最初のものが最も小さいです。

素朴なアプローチ

の中国語訳は次のとおりです:

素朴なアプローチ

例を見たところで、問題を解決するために実行する手順を見てみましょう -

  • まず、現在の数値が正か負かを確認します。

  • 現在の数値が負の場合、それを負の変数としてマークし、現在の数値を正の値にします。

  • その後、現在の数値を文字列に変換し、現在の数値の符号に基づいて関数を呼び出します。

  • これらの関数では、各位置の数値を当てはめて、正または負の数値に基づいて現在の数値が小さいか大きいかを確認します。

  • 現在の数値が正の場合、最小の数値を見つけてそれを返します。

  • それ以外の場合は、最大の数値を見つけて、-1 を乗算して返します。

Example

の中国語訳は次のとおりです:

Example

リーリー ###出力### リーリー

時間と空間の複雑さ

上記のコードの時間計算量は O(N*N) です。ここで、N は指定された数値の桁数です。

上記のコードの空間計算量は O(N) です。ここで、N は指定された数値の桁数です。

効率的な方法

前のメソッドでは、各数値をチェックし、指定された数値より大きい最初の数値を見つけて、それを加算してそれ自体を返しました。これは効率的な方法です。負の数値の場合は、小さい方の数値を見つけて加算して返します。

コードを見てみましょう-

Example

の中国語訳は次のとおりです:

Example

リーリー ###出力### リーリー

時間と空間の複雑さ

上記のコードの時間計算量は O(N) です。ここで、N は指定された数値の桁数です。

上記のコードの空間計算量は O(N) です。ここで、N は指定された数値の桁数です。

###結論は###

このチュートリアルでは、指定された数値に数値を挿入するメソッド、つまり、数値の前、後、または数値の間に新しい指定された数値を追加するメソッドを実装しました。時間計算量が O(N*N) のメソッドと、時間計算量が O(N) のメソッドの 2 つを確認しました。両方のメソッドの空間計算量は O(N) です。

以上が指定された数値を挿入して形成される最小の数値を見つけますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。