qiuqiuyaq 2022-05-10 13:23 采纳率: 97.9%
浏览 19

单调栈问题求解有些小问题

img


没有什么思路,代码中的while循环没看懂
class Solution {
public:
vector finalPrices(vector& prices) {
vector res;
stack stk;
for(int i = prices.size() - 1;i >= 0;i--) {
int t = prices[i];
while(stk.size() && stk.top() > t) stk.pop();
if(stk.size()) res.push_back(t - stk.top());
else res.push_back(t);
while(stk.size() && stk.top() == t) stk.pop();
stk.push(t);
}
return vector(res.begin(),res.end());
}
};

  • 写回答

1条回答 默认 最新

  • 吕布辕门 后端领域新星创作者 2022-05-10 13:45
    关注

    while(stk.size() && stk.top() > t) stk.pop();

    如果栈中有值,并且栈顶值大于t,弹出栈顶元素

    评论

报告相同问题?

问题事件

  • 修改了问题 5月10日
  • 创建了问题 5月10日

悬赏问题

  • ¥20 Html备忘录页面制作
  • ¥15 黄永刚的晶体塑性子程序中输入的材料参数里的晶体取向参数是什么形式的?
  • ¥20 数学建模来解决我这个问题
  • ¥15 计算机网络ip分片偏移量计算头部是-20还是-40呀
  • ¥15 stc15f2k60s2单片机关于流水灯,时钟,定时器,矩阵键盘等方面的综合问题
  • ¥15 YOLOv8已有一个初步的检测模型,想利用这个模型对新的图片进行自动标注,生成labellmg可以识别的数据,再手动修改。如何操作?
  • ¥30 NIRfast软件使用指导
  • ¥20 matlab仿真问题,求功率谱密度
  • ¥15 求micropython modbus-RTU 从机的代码或库?
  • ¥15 django5安装失败