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

给你一个数组 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;
    }
}
相关推荐
唐青枫32 分钟前
看懂内存地址之后,才算真正入门 Zig:指针、切片与实战
后端
朋克洛德的码农32 分钟前
Go并发-sync包四剑客:Mutex、RWMutex、WaitGroup、Once-从入门到原理
开发语言·后端·golang
fulton34 分钟前
为什么不用现成的开源工具?NovelOps与6大AI写作工具横向对比
后端
fulton37 分钟前
3个月踩坑实录:从想法到270章规划,AI写长篇到底要花多少成本?
后端
fulton38 分钟前
为什么AI写到20章就开始"复制粘贴"自己?创意扰动机制详解
后端
艺艺生辉39 分钟前
从if-else到策略模式
后端·设计模式
fulton39 分钟前
AI写小说失败的第一原因是什么
后端
fulton40 分钟前
这段文字有AI味"到底怎么判断
后端
qeen8741 分钟前
【数据结构】自平衡二叉搜索树各种旋转算法原理解析及AVL树的C++实现
数据结构·c++·算法
fulton43 分钟前
为什么AI写的小说节奏总是崩
后端