。最大スワップ
670。最大スワップ
難易度: 中
トピック: 数学、貪欲
整数が与えられます。最大値の数値を取得するために、最大 2 桁を 1 回交換できます。
取得できる最大値を返します。
例 1:
- 入力: 数値 = 2736
- 出力: 7236
- 説明: 数字の 2 と数字の 7 を交換します。
例 2:
- 入力: 数値 = 9973
- 出力: 9973
- 説明: スワップはありません。
制約:
- 0 8
解決策:
私たちは貪欲なアプローチに従うことができます。段階的な説明と解決策は次のとおりです:
アプローチ:
- 数値を配列に変換する: 数字を交換する必要があるため、数値を数字の配列に変換すると、個々の数字へのアクセスと操作が容易になります。
- 各数字の右端の出現を追跡: 各数字 (0 ~ 9) の右端の位置を配列に保存します。
- 最適な交換機会を見つける: 番号の桁を左から右に移動し、各桁について、後で表示される上位の桁があるかどうかを確認します。その場合は、それらを交換して数を最大化します。
- スワップと中断を実行します: 最適なスワップが見つかるとすぐに、スワップを実行してループを中断します。
- 配列を数値に戻す: 交換後、数字の配列を数値に変換して返します。
このソリューションを PHP で実装してみましょう: 670。最大スワップ
<?php /** * @param Integer $num * @return Integer */ function maximumSwap($num) { ... ... ... /** * go to ./solution.php */ } // Example usage: echo maximumSwap(2736); // Output: 7236 echo maximumSwap(9973); // Output: 9973 ?>
ログイン後にコピー
説明:
- ステップ 1: strval($num) は整数を文字列に変換し、str_split($numStr) はそれを数字の配列に分割します。
- ステップ 2: 最後の配列は、0 から 9 までの各桁の右端のインデックスを追跡します。
- ステップ 3: 各桁を反復処理し、交換可能なより大きな桁を探します。
- ステップ 4: 適切な大きい桁が見つかった場合 (数値の後ろに表示されます)、桁が交換されます。
- ステップ 5: 変更された配列は文字列に変換され、次に intval() を使用して整数に変換されます。
複雑:
- 時間計算量: O(n)、n は num の桁数です。これは、最後の配列を埋めるために数値を通過させ、最適なスワップを見つけるために別のパスを実行するためです。
- 空間複雑度: 最後の配列が 10 要素で固定されているため、O(1) (入力サイズを無視)。
このソリューションは、必要に応じて数字を 1 回だけ交換することで最大値を効率的に見つけます。
連絡先リンク
このシリーズが役立つと思われた場合は、GitHub で リポジトリ にスターを付けるか、お気に入りのソーシャル ネットワークで投稿を共有することを検討してください。あなたのサポートは私にとって大きな意味を持ちます!
このような役立つコンテンツがさらに必要な場合は、お気軽にフォローしてください:
- GitHub
以上が。最大スワップの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事
R.E.P.O.説明されたエネルギー結晶と彼らが何をするか(黄色のクリスタル)
2週間前
By 尊渡假赌尊渡假赌尊渡假赌
レポ:チームメイトを復活させる方法
4週間前
By 尊渡假赌尊渡假赌尊渡假赌
ハローキティアイランドアドベンチャー:巨大な種を手に入れる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
スプリットフィクションを打ち負かすのにどれくらい時間がかかりますか?
3週間前
By DDD
R.E.P.O.ファイルの保存場所:それはどこにあり、それを保護する方法は?
3週間前
By DDD

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック
Gmailメールのログイン入り口はどこですか?
7315
9


Java チュートリアル
1625
14


CakePHP チュートリアル
1348
46


Laravel チュートリアル
1261
25


PHP チュートリアル
1208
29



LaravelのバックエンドでReactアプリを構築する:パート2、React
