検索
ホームページバックエンド開発PHPチュートリアルショップでの特別割引を含む最終価格

Final Prices With a Special Discount in a Shop

1475。ショップでの特別割引を含む最終価格

難易度: 簡単

トピック: 配列、スタック、単調スタック

整数の配列pricesが与えられます。price[i]はショップ内のi番目の商品の価格です。

店内の商品には特別割引があります。 i 番目 のアイテムを購入すると、prices[j] に相当する割引が適用されます。ここで、j は j > となる最小のインデックスです。 i と価格[j]

整数配列の回答を返します。ここで、answer[i] は、特別割引を考慮した、ショップの i 番目 のアイテムに対して支払う最終価格です。

例 1:

  • 入力: 価格 = [8,4,6,2,3]
  • 出力: [4,2,4,2,3]
  • 説明:
    • 価格[0]=8 の商品 0 の場合、価格[1]=4 と同等の割引が適用されます。したがって、最終的に支払う価格は 8 - 4 = 4 となります。
    • 価格[1]=4 のアイテム 1 については、価格[3]=2 と同等の割引が適用されます。したがって、最終的に支払う価格は 4 - 2 = 2 となります。
    • 価格[2]=6 のアイテム 2 については、価格[3]=2 と同等の割引が適用されます。したがって、最終的に支払う価格は 6 - 2 = 4 となります。
    • 項目 3 と 4 については、割引は一切受けられません。

例 2:

  • 入力: 価格 = [1,2,3,4,5]
  • 出力: [1,2,3,4,5]
  • 説明: この場合、すべての商品について、割引は一切受けられません。

例 3:

  • 入力: 価格 = [10,1,1,6]
  • 出力: [9,0,1,6]

制約:

  • 1
  • 1

ヒント:

  1. 総当たりの使用: ループのあるショップ内の i 番目のアイテムについて、条件を満たす最初の位置 j を見つけて割引を適用します。それ以外の場合、割引は 0 です。

解決策:

現在の価格以下の価格の商品が後から存在するという条件に基づいて特別割引を適用する必要があり、総当たりアプローチを使用できます。価格配列を反復処理し、各アイテムについて、その後に低い価格または同等の価格を持つ最初のアイテムを探します。これはネストされたループで実現できます。スタックを利用すると、アイテムの価格を効率的に追跡し、特別割引を適用できます。

アプローチ:

  1. スタックアプローチ:

    • 価格配列を左から右に反復処理できます。各アイテムについて、スタックを使用して、まだ割引が見つかっていない価格を追跡します。
    • 各価格について、スタックの最上位の価格以下であるかどうかを確認します。そうであれば、割引を適用できることを意味します。
    • スタックにはアイテムのインデックスが保存され、アイテムごとに、現在の価格がスタック内のインデックスの価格より大きいかどうか、つまり割引がないかどうかを確認します。それ以外の場合は、現在の価格から対応する価格を引いて割引を適用します。
  2. エッジケース: 配列内でこれより低い価格のアイテムがない場合、割引は適用されません。

このソリューションを PHP で実装してみましょう: 1475。ショップでの特別割引を含む最終価格

<?php /**
 * @param Integer[] $prices
 * @return Integer[]
 */
function finalPrices($prices) {
    ...
    ...
    ...
    /**
     * go to ./solution.php
     */
}

// Example usage:
$prices1 = [8, 4, 6, 2, 3];
$prices2 = [1, 2, 3, 4, 5];
$prices3 = [10, 1, 1, 6];

print_r(finalPrices($prices1)); // Output: [4, 2, 4, 2, 3]
print_r(finalPrices($prices2)); // Output: [1, 2, 3, 4, 5]
print_r(finalPrices($prices3)); // Output: [9, 0, 1, 6]
?>

説明:

  1. 初期化:

    • $prices と同じサイズの配列 $result を作成し、0 に初期化します。
  2. 外側のループ:

    • インデックス $i の各価格をループして、割引後の最終価格を計算します。
  3. 内部ループ:

    • 各価格 $i について、後続の価格 $j を繰り返します ($j > $i)。
    • $prices[$j] が $prices[$i] 以下かどうかを確認します。 true の場合、$discount = $prices[$j] を設定し、内側のループを終了します。
  4. 最終価格計算:

    • $prices[$i] から見つかった割引を減算し、結果を $result[$i] に保存します。
  5. 結果を返す:

    • すべての価格を処理した後、最終結果の配列を返します。

複雑:

  • 時間計算量: O(n²) (各価格のネストされたループのため)。
  • 空間複雑度: O(n) (結果配列の場合)。

出力例:

  • 価格 = [8, 4, 6, 2, 3] の場合、出力は [4, 2, 4, 2, 3] です。
  • 価格 = [1, 2, 3, 4, 5] の場合、出力は [1, 2, 3, 4, 5] です。
  • 価格 = [10, 1, 1, 6] の場合、出力は [9, 0, 1, 6] です。

このアプローチは、最適化されたソリューションではありませんが、問題の制約 (1

連絡先リンク

このシリーズが役立つと思われた場合は、GitHub で リポジトリ にスターを付けるか、お気に入りのソーシャル ネットワークで投稿を共有することを検討してください。あなたのサポートは私にとって大きな意味を持ちます!

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

  • LinkedIn
  • GitHub

以上がショップでの特別割引を含む最終価格の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PHPおよびPython:さまざまなパラダイムが説明されていますPHPおよびPython:さまざまなパラダイムが説明されていますApr 18, 2025 am 12:26 AM

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPとPython:彼らの歴史を深く掘り下げますPHPとPython:彼らの歴史を深く掘り下げますApr 18, 2025 am 12:25 AM

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

PHPとPythonの選択:ガイドPHPとPythonの選択:ガイドApr 18, 2025 am 12:24 AM

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

PHPとフレームワーク:言語の近代化PHPとフレームワーク:言語の近代化Apr 18, 2025 am 12:14 AM

PHPは、多数のWebサイトとアプリケーションをサポートし、フレームワークを通じて開発ニーズに適応するため、近代化プロセスで依然として重要です。 1.PHP7はパフォーマンスを向上させ、新機能を紹介します。 2。Laravel、Symfony、Codeigniterなどの最新のフレームワークは、開発を簡素化し、コードの品質を向上させます。 3.パフォーマンスの最適化とベストプラクティスは、アプリケーションの効率をさらに改善します。

PHPの影響:Web開発などPHPの影響:Web開発などApr 18, 2025 am 12:10 AM

phphassiblasifly-impactedwebdevevermentandsbeyondit.1)itpowersmajorplatformslikewordpratsandexcelsindatabase interactions.2)php'sadaptableability allowsitale forlargeapplicationsusingframeworkslikelavel.3)

スカラータイプ、リターンタイプ、ユニオンタイプ、ヌル可能なタイプなど、PHPタイプのヒントはどのように機能しますか?スカラータイプ、リターンタイプ、ユニオンタイプ、ヌル可能なタイプなど、PHPタイプのヒントはどのように機能しますか?Apr 17, 2025 am 12:25 AM

PHPタイプは、コードの品質と読みやすさを向上させるためのプロンプトがあります。 1)スカラータイプのヒント:php7.0であるため、基本データ型は、int、floatなどの関数パラメーターで指定できます。 3)ユニオンタイプのプロンプト:PHP8.0であるため、関数パラメーターまたは戻り値で複数のタイプを指定することができます。 4)Nullable Typeプロンプト:null値を含めることができ、null値を返す可能性のある機能を処理できます。

PHPは、オブジェクトのクローニング(クローンキーワード)と__Clone Magicメソッドをどのように処理しますか?PHPは、オブジェクトのクローニング(クローンキーワード)と__Clone Magicメソッドをどのように処理しますか?Apr 17, 2025 am 12:24 AM

PHPでは、クローンキーワードを使用してオブジェクトのコピーを作成し、\ _ \ _クローンマジックメソッドを使用してクローン動作をカスタマイズします。 1.クローンキーワードを使用して浅いコピーを作成し、オブジェクトのプロパティをクローン化しますが、オブジェクトのプロパティはクローニングしません。 2。\ _ \ _クローン法は、浅いコピーの問題を避けるために、ネストされたオブジェクトを深くコピーできます。 3.クローニングにおける円形の参照とパフォーマンスの問題を避けるために注意し、クローニング操作を最適化して効率を向上させます。

PHP対Python:ユースケースとアプリケーションPHP対Python:ユースケースとアプリケーションApr 17, 2025 am 12:23 AM

PHPはWeb開発およびコンテンツ管理システムに適しており、Pythonはデータサイエンス、機械学習、自動化スクリプトに適しています。 1.PHPは、高速でスケーラブルなWebサイトとアプリケーションの構築においてうまく機能し、WordPressなどのCMSで一般的に使用されます。 2。Pythonは、NumpyやTensorflowなどの豊富なライブラリを使用して、データサイエンスと機械学習の分野で驚くほどパフォーマンスを発揮しています。

See all articles

ホット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ヘンタイを無料で生成します。

ホットツール

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境