首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    今日头条笔试题:“最小数字*区间和”的最大值【单调栈】

    题目描述:   给定一段数组,求每个区间的最小值乘这段区间的和,输出每个区间得到的最大值。   ...解法:   利用单调栈,从前向后和从后向前分别遍历一遍数组,得到每个元素的左边界和右边界(边界的定义即为碰到比该元素更小的即停止),最后用每个元素乘以每个元素对应的区间和,找出最大值即可。...这里有一个技巧,为了防止每个元素重复计算一段区间和,可以提前开一个递增序列,用于保存某元素之前的各项和(含该元素),求取一段区间和的时候用右边界的递增和减去左边界减一的递增和即可。...*****************/ 64 long long result=0; 65 int index_start=0,index_end=0;//得到最大值的区间...*****************/ 55 long long result=0; 56 int index_start=0,index_end=0;//得到最大值的区间

    2K10
    领券