LeetCode 1475 商品折扣后的最终价格[栈] HERODING的LeetCode之路
Posted HERODING23
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 1475 商品折扣后的最终价格[栈] HERODING的LeetCode之路相关的知识,希望对你有一定的参考价值。
解题思路:
刚看到这道题的时候不知道如何下手,如果用暴力的方法时间复杂度太高,并且会进行很多重复操作,但是利用栈的形式可以很好化解这样的问题,可以设计这样一个栈,栈顶遇到小的就弹出,不断弹出直到没有比要进入的数还大的数,这能保证栈中的元素右边的元素都是比自身大的数,这样一次遍历就可以把所有的商品价格都更新,代码如下:
class Solution
public:
vector<int> finalPrices(vector<int>& prices)
int n = prices.size();
stack<int> s;
for(int i = 0; i < n; i ++)
if(s.empty())
s.push(i);
else
while(!s.empty() && prices[s.top()] >= prices[i])
prices[s.top()] -= prices[i];
s.pop();
s.push(i);
return prices;
;
以上是关于LeetCode 1475 商品折扣后的最终价格[栈] HERODING的LeetCode之路的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode 1475 商品折扣后的最终价格[栈] HERODING的LeetCode之路