1475。最終價格在商店有特別折扣
難度:簡單
主題:陣列、堆疊、單調堆疊
給你一個整數數組prices,其中prices[i]是商店中第i個個商品的價格。
店內商品有特別折扣。如果您購買第 ith 件商品,那麼您將獲得相當於價格[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中文網其他相關文章!