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

给你一个数组 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;
    }
}
相关推荐
周末吃鱼4 分钟前
研发快速使用JMeter
java·jmeter
EntyIU5 分钟前
自己实现mybatisplus的批量插入
java·后端
用户617433273106 分钟前
MySQL 表的类 Git 版本控制
后端
君义_noip9 分钟前
信息学奥赛一本通 1951:【10NOIP普及组】导弹拦截 | 洛谷 P1158 [NOIP 2010 普及组] 导弹拦截
c++·算法·csp-j·信息学奥赛
环黄金线HHJX.9 分钟前
《QuantumTuan ⇆ QT:Qt》
人工智能·qt·算法·编辑器·量子计算
jz_ddk10 分钟前
[实战] 射频相位噪声单位转换:从dBc/Hz到rad
算法·rf·射频·相位噪声·相噪
zl_vslam12 分钟前
SLAM中的非线性优-3D图优化之地平面约束(十五)
人工智能·算法·计算机视觉·3d
pany12 分钟前
程序员近十年新年愿望,都有哪些变化?
前端·后端·程序员
杨宁山14 分钟前
Java 解析 CDR 文件并计算图形面积的完整方案(支持 MultipartFile / 网络文件)@杨宁山
后端
空空潍14 分钟前
hot100-滑动窗口最大值(day11)
数据结构·c++·算法·leetcode