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

给你一个数组 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;
    }
}
相关推荐
hello 早上好4 分钟前
03_JVM(Java Virtual Machine)的生命周期
java·开发语言·jvm
CS创新实验室5 分钟前
《计算机网络》深入学:路由算法与路径选择
网络·计算机网络·算法
一条大祥脚5 分钟前
ABC357 基环树dp|懒标记线段树
数据结构·算法·图论
tod1136 分钟前
力扣高频 SQL 50 题阶段总结(四)
开发语言·数据库·sql·算法·leetcode
naruto_lnq17 分钟前
C++中的桥接模式
开发语言·c++·算法
苦藤新鸡17 分钟前
50.腐烂的橘子
数据结构·算法
夕除22 分钟前
js--7
java
想进个大厂22 分钟前
代码随想录day32 动态规划01
算法·动态规划
布谷歌26 分钟前
面试题整理
java·开发语言
爬山算法33 分钟前
Hibernate(74)如何在CQRS架构中使用Hibernate?
java·架构·hibernate