项目空间

学习笔记N-052

接雨水?

更新
内容块
17
阅读
约 1 分钟
路径
学习笔记 / C++ / 经典题型
接雨水? · 图 1

1.第36和37行是如何等价的

2.partial_sum是怎么代替前缀最大值的的计算的

回答:partial_sum 不只是算前缀和

代码块C++
partial_sum(h.rbegin(), h.rend(), right_max.rbegin())

这个就是计算前缀和的

代码块C++
    partial_sum(h.rbegin(), h.rend(), right_max.rbegin(), [&](int prev, int cur) {
      return max(prev, cur);

在stl里面partial_sum允许用户再自定义一个匿名函数累积规则

partial_sum(开始, 结束, 结果开始, 二元操作符);

扩展:

前缀和:二元运算 = +

前缀最大值:二元运算 = max

前缀积:二元运算 = *

前缀最小值:二元运算 = min

注意:

1.第21,25行的判断是防止越界