。最大スワップ

Oct 17, 2024 pm 10:09 PM

. Maximum Swap

670。最大スワップ

難易度:

トピック: 数学、貪欲

整数が与えられます。最大値の数値を取得するために、最大 2 桁を 1 回交換できます。

取得できる最大値を返します。

例 1:

  • 入力: 数値 = 2736
  • 出力: 7236
  • 説明: 数字の 2 と数字の 7 を交換します。

例 2:

  • 入力: 数値 = 9973
  • 出力: 9973
  • 説明: スワップはありません。

制約:

  • 0 8

解決策:

私たちは貪欲なアプローチに従うことができます。段階的な説明と解決策は次のとおりです:

アプローチ:

  1. 数値を配列に変換する: 数字を交換する必要があるため、数値を数字の配列に変換すると、個々の数字へのアクセスと操作が容易になります。
  2. 各数字の右端の出現を追跡: 各数字 (0 ~ 9) の右端の位置を配列に保存します。
  3. 最適な交換機会を見つける: 番号の桁を左から右に移動し、各桁について、後で表示される上位の桁があるかどうかを確認します。その場合は、それらを交換して数を最大化します。
  4. スワップと中断を実行します: 最適なスワップが見つかるとすぐに、スワップを実行してループを中断します。
  5. 配列を数値に戻す: 交換後、数字の配列を数値に変換して返します。

このソリューションを 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 で リポジトリ にスターを付けるか、お気に入りのソーシャル ネットワークで投稿を共有することを検討してください。あなたのサポートは私にとって大きな意味を持ちます!

このような役立つコンテンツがさらに必要な場合は、お気軽にフォローしてください:

  • LinkedIn
  • GitHub

以上が。最大スワップの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

11ベストPHP URLショートナースクリプト(無料およびプレミアム) 11ベストPHP URLショートナースクリプト(無料およびプレミアム) Mar 03, 2025 am 10:49 AM

11ベストPHP URLショートナースクリプト(無料およびプレミアム)

Instagram APIの紹介 Instagram APIの紹介 Mar 02, 2025 am 09:32 AM

Instagram APIの紹介

Laravelでフラッシュセッションデータを使用します Laravelでフラッシュセッションデータを使用します Mar 12, 2025 pm 05:08 PM

Laravelでフラッシュセッションデータを使用します

LaravelのバックエンドでReactアプリを構築する:パート2、React LaravelのバックエンドでReactアプリを構築する:パート2、React Mar 04, 2025 am 09:33 AM

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

Laravelテストでの簡略化されたHTTP応答のモッキング Laravelテストでの簡略化されたHTTP応答のモッキング Mar 12, 2025 pm 05:09 PM

Laravelテストでの簡略化されたHTTP応答のモッキング

PHPのカール:REST APIでPHPカール拡張機能を使用する方法 PHPのカール:REST APIでPHPカール拡張機能を使用する方法 Mar 14, 2025 am 11:42 AM

PHPのカール:REST APIでPHPカール拡張機能を使用する方法

Codecanyonで12の最高のPHPチャットスクリプト Codecanyonで12の最高のPHPチャットスクリプト Mar 13, 2025 pm 12:08 PM

Codecanyonで12の最高のPHPチャットスクリプト

2025 PHP状況調査の発表 2025 PHP状況調査の発表 Mar 03, 2025 pm 04:20 PM

2025 PHP状況調査の発表

See all articles