首页 > 其他分享 >接雨水

接雨水

时间:2024-11-10 19:09:41浏览次数:1  
标签:int max sum cin long -- 雨水

using namespace std;
//锻炼思维的题目。
int main(){        
    int t;
    
cin>>t;
  
while(t--){
        long long int n; // 使用 long long int 来处理可能的大数
        cin>>n;
        vector<long long int> a(n), l(n), r(n); // 同样,数组元素也应该是 long long int
        long long int sum = 0; // sum 也应该是 long long int
        //定义两个数组,储存第i位置左侧max以及右侧max
        for(long long int i=0; i<n; i++)
            cin>>a[i];
        l[0] = a[0];
        r[n-1] = a[n-1];
        for(long long int i=1; i<n; i++)
            l[i] = max(a[i], l[i-1]);
            //计算左侧的max
        for(long long int i=n-2; i>=0; i--)
            r[i] = max(a[i], r[i+1]);
        for(long long int i=0; i<n; i++)
        {//由两侧最大中的最小决定。
            if(((min(l[i], r[i]) - a[i]))>=0)
            sum += (min(l[i], r[i]) - a[i]);}
        cout << sum << "\n";               
    }
    return 0;
}`````
易错1.思维思考不全面,及左右两侧最大值的求法。
2.数据类型不够,如果是int
3.` ``sum += (min(l[i], r[i]) - a[i]);
运用 long long int 数据类型写成sum += max(min(l[i], r[i]) - a[i], 0);```是不对的。
存在编译错误。
``error: no matching function for call to 'max(long long int, int)`

标签:int,max,sum,cin,long,--,雨水
From: https://www.cnblogs.com/yue-mikasa/p/18538321

相关文章

  • LeetCode100之接雨水(42)--Java
    1.问题描述        给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。        示例1输入:height=[0,1,0,2,1,0,1,3,2,1,2,1]输出:6解释:上面是由数组[0,1,0,2,1,0,1,3,2,1,2,1]表示的高度图,在这种情况下......
  • P8475 「GLR-R3」雨水 题解
    关于这道题目卡\(O(n\logn)\)但是放\(O(n^2)\)我也是很疑惑。我们发现,题目要求的是字典序最小的序列。但凡涉及了字典序最小,答案或多或少的都会带点贪心思想。那我们也来贪一贪。考虑当前枚举到第\(i\)个点,如果后面有比它更小的数,那显然把它们交换过来是更优的。如果有多......
  • 力扣42 接雨水 Java版本
    文章目录题目描述代码1题目描述给定n个非负整数表示每个宽度为1的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。示例1:输入:height=[0,1,0,2,1,0,1,3,2,1,2,1]输出:6解释:上面是由数组[0,1,0,2,1,0,1,3,2,1,2,1]表示的高度图,在这种情况下,可以接......
  • 代码随想录day49 || 42、接雨水 84、柱状图中最大的矩形
    42、接雨水functrap(height[]int)int{ //双指针思路,按照列计算雨水高度,分别计算每一列左右高于当前高度的最高柱子高度,然后通过min(left,right)-height[i]得出当前列的雨水体积 varresint varleft,rightint fori:=1;i<len(height)-1;i++{ left,right=......
  • 河道水库雨水情视频监控智能分析系统
    河道水库雨水情视频监控智能分析系统可以提升水利枢纽的安全性,这个问题一直是防汛管理方法机构重视的一个主要问题。为加强水利枢纽安全性监管,管理方法单位急需河道水库雨水情视频监控智能分析系统,实时监测降水信息内容,为防汛防灾减灾给予精确、立即的数据信息。系统基本建设总体......
  • 代码随想录算法训练营第 49 天 |LeetCode42 接雨水 LeetCode84 柱状图中最大面积矩形
    代码随想录算法训练营Day49代码随想录算法训练营第49天|LeetCode42接雨水LeetCode84柱状图中最大面积矩形目录代码随想录算法训练营前言LeetCode42接雨水LeetCode84柱状图中最大面积矩形一、LeetCode42接雨水1.题目链接2.思路3.题解二、LeetCode84柱状......
  • 代码随想录算法刷题训练营day49:LeetCode(42)接雨水、LeetCode(84)柱状图中最大的矩形
    代码随想录算法刷题训练营day49:LeetCode(42)接雨水、LeetCode(84)柱状图中最大的矩形LeetCode(42)接雨水题目代码importjava.util.Stack;classSolution{publicinttrap(int[]height){//用单调栈进行操作intsum=0;Stack<Integ......
  • 廉价平替esphome水浸 雨水传感器diy
    esp8266nodemcu+雨水传感器diy厨房水浸传感器首先在esphome中添加设备esp8266nodemcu+雨水传感器diy厨房水浸传感器esphome配置编写#8266平台配置esp8266:board:nodemcuv2#水浸雨水传感器binary_sensor:-platform:gpiopin:number:GP......
  • LeetCode42(接雨水)[三种解法:理解动态规划,双指针,单调栈]
    接雨水给定n个非负整数表示每个宽度为1的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。这是一道困难题,难度确实有点层次.我们先来朴素思想走一波.要求能接多少雨水,我们可以具化到每个硅谷,每个硅谷能存多少雨水,那么答案就是每个硅谷的雨水所加之和.对......
  • 代码随想录算法训练营第56天 | 42. 接雨水 、84.柱状图中最大的矩形
    图论理论基础大家可以在看图论理论基础的时候,很多内容看不懂,例如也不知道看完之后还是不知道邻接矩阵,邻接表怎么用,别着急。理论基础大家先对各个概念有个印象就好,后面在刷题的过程中,每个知识点都会得到巩固。https://www.programmercarl.com/kamacoder/图论理论基础.html......