首页
比赛
题库
课程
竞赛讨论区
登录
/
注册
去牛客
首页
>
数据分析
4条解析
开通博客写题解
Dear㉿You
发表于 2020-11-20 21:19:51
C 数据分析 分析 先看题目:最大的最小。其在做这一类的题都有一种思想。因为暴力时直接枚举区间,但是反着来,求出一个数对某一段区间的影响,拿样例举例一个数能作为最大值,区间的范围之内就不能出现大于它的任何数,设lm[i]:位于i左边第一个大于a[i]的数的位置+1 rm[i]:位于i右边第一个大于
展开全文
Bernard5
发表于 2020-11-23 21:37:07
题意 给定一个长度为的数组。找它的长度为的区间中的最大值,求这些所有的最大值的集合里的最小值。 思路 利用单调栈,对于每一个,找出来左边第一个比它大的,找出来右边第一个比它大的。并且把它们的下标分别存和里。 对于每一个,它能作为最小值的最长区间已经确定了。那么就可以通过比较得到一部分长度的区间的最
展开全文
ZhongHaoWang
发表于 2021-08-27 17:06:39
由于我们只需要考虑每个长度为N的子数组的最大值,因此我们枚举每个元素,记录其可以为子数组最大值的覆盖区间长度,在该区间内该元素始终为最大值;同时我们可以知道,若存在一个长度为m的子数组最大值为k,显然可以找到任意一个长度小于等于m的子数组使其最大值为k;因此我们首先通过单调栈求出每个元素的覆盖区间,
展开全文
YoungPQ
发表于 2021-08-22 10:32:03
第一步,设置维护两个数组 leftBiggerId[]、 rightBiggerId[],返回结果为res[] 计算 leftBiggerId[i] :在第i个元素的左边,找到一个最近的元素numbers[x],使得numbers[x]>numbers[i],则leftBiggerId[i]=
展开全文
查看本题
查看本题讨论
相关比赛
9224-牛客编程巅峰赛S2第2场 - 钻石&王者
进入比赛
34559-老6比赛
进入比赛
47574-训练题
进入比赛
等你来战
查看全部
牛客周赛 Round 96
报名截止时间:2025-06-15 21:00
牛客练习赛141
报名截止时间:2025-06-20 21:30
牛客周赛 Round 97
报名截止时间:2025-06-22 21:00
第五届上海理工大学程序设计全国挑战赛
报名截止时间:2025-06-29 17:30
2025牛客暑期多校训练营1
报名截止时间:2025-07-15 17:00
2025牛客暑期多校训练营2
报名截止时间:2025-07-17 17:00
扫描二维码,关注牛客
意见反馈
下载牛客APP,随时随地刷题