商品折扣后的最终价格单调栈

给你一个数组 prices ,其中 prices[i] 是商店里第 i 件商品的价格。 商店里正在进行促销活动,如果你要买第 i 件商品,那么你可以得到与 prices[j] 相等的折扣,其中 j 是满足 j > iprices[j] <= prices[i]最小下标 ,如果没有满足条件的 j ,你将没有任何折扣。 请你返回一个数组,数组中第 i 个元素是折扣后你购买商品 i 最终需要支付的价格。

ini 复制代码
输入: prices = [8,4,6,2,3]
输出: [4,2,4,2,3]
java 复制代码
class Solution {
    public int[] finalPrices(int[] prices) {
        int n=prices.length;
        int[] ans=new int[n];
        Deque<Integer> stack=new ArrayDeque<Integer>();
        for(int i=n-1;i>=0;i--){
            while(!stack.isEmpty() && stack.peek()>prices[i]){
                stack.pop();
            }
            ans[i]=stack.isEmpty()?prices[i]:prices[i]-stack.peek();
            stack.push(prices[i]);
        }
        return ans;
    }
}
相关推荐
xcl092544 分钟前
商超智能运营实战:数据驱动提升门店效率与体验指南
java·mfc·宠物
码事漫谈3 小时前
勿删
后端
Flynt3 小时前
OpenJDK禁AI代码半年了,现在执行得怎么样?答案是:全靠自觉
java·开源·ai编程
IT_陈寒6 小时前
用了Proxy才发现以前的JavaScript白写了
前端·人工智能·后端
唐青枫7 小时前
别把 ArrayList 当成会自动管理内存的 List:Zig 动态数组从入门到实战
后端
鸿蒙开发7 小时前
我为 HarmonyOS 做了一个统一大模型 SDK:@hmkit/ai 正式开源
后端
猪是念来过倒7 小时前
Semaphore 与 RateLimiter:并发控制双雄详解
后端
掘金者阿豪7 小时前
异构数据同步最怕什么?不是同步慢,而是数据对不上
后端
古法安卓8 小时前
Android-日志系统源码解析
android·java·android studio
地平线开发者8 小时前
【模型轻量化专题】衡量模型轻量性的指标
算法