ホームページ >バックエンド開発 >PHPチュートリアル >ショップでの特別割引を含む最終価格
1475。ショップでの特別割引を含む最終価格
難易度: 簡単
トピック: 配列、スタック、単調スタック
整数の配列pricesが与えられます。price[i]はショップ内のi番目の商品の価格です。
店内の商品には特別割引があります。 i 番目 のアイテムを購入すると、prices[j] に相当する割引が適用されます。ここで、j は j > となる最小のインデックスです。 i と価格[j]
整数配列の回答を返します。ここで、answer[i] は、特別割引を考慮した、ショップの i 番目 のアイテムに対して支払う最終価格です。
例 1:
例 2:
例 3:
制約:
ヒント:
解決策:
現在の価格以下の価格の商品が後から存在するという条件に基づいて特別割引を適用する必要があり、総当たりアプローチを使用できます。価格配列を反復処理し、各アイテムについて、その後に低い価格または同等の価格を持つ最初のアイテムを探します。これはネストされたループで実現できます。スタックを利用すると、アイテムの価格を効率的に追跡し、特別割引を適用できます。
スタックアプローチ:
エッジケース: 配列内でこれより低い価格のアイテムがない場合、割引は適用されません。
このソリューションを 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
連絡先リンク
このシリーズが役立つと思われた場合は、GitHub で リポジトリ にスターを付けるか、お気に入りのソーシャル ネットワークで投稿を共有することを検討してください。あなたのサポートは私にとって大きな意味を持ちます!
このような役立つコンテンツがさらに必要な場合は、お気軽にフォローしてください:
以上がショップでの特別割引を含む最終価格の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。