关注
提供一个E题O(nlogn)的做法。
右边部分就不说了。
左边部分,要查询[1,i]中最右边的值>h的位置。线段树维护最大值,[1,i]在线段树中分成最多logn段。从右到左的扫这些段,如果这个段的最大值<=h,那么整段都不满足,继续下一段。如果这个段的最大值>h,那么答案一定在这个段内,在这个段内继续二分,复杂度也是O(logn),因此总的复杂度是O(nlogn)。
代码:
int ask(int L, int R, int h, int l, int r, int rt) {
if (L <= l && r <= R) {
if (mx[rt].h <= h) return 0;
if (l == r) return l;
int mid = (l+r)/2;
if (mx[rt<<1|1] > h) return ask(L,R,h,mid+1,r,rt<<1|1);
return ask(L,R,h,l,mid,rt<<1);
}
int mid = (l+r)/2, ans = 0;
if (mid < R) ans = ask(L,R,h,mid+1,r,rt<<1|1);
if (ans == 0 && L <= mid) ans = ask(L,R,h,l,mid,rt<<1);
return ans;
}
查看原帖
点赞 1
相关推荐
点赞 评论 收藏
转发
04-24 16:41
门头沟学院 中国语言文学类 大疆一直给的钱都是非常多的,但是大疆不喜欢招应届生,更倾向于社招有工作经验的3-5年的那种,年薪会达到60W,之前面过大疆和旁听社招的大疆面试是两个样子,总之薪资天花板不是大疆就是华为,车企看理想!!
点赞 评论 收藏
转发
点赞 评论 收藏
转发
牛客热帖
正在热议
# 牛客帮帮团来啦!有问必答 #
382214次浏览 7620人参与
# 应届生初入职场,求建议 #
21940次浏览 537人参与
# 晒一晒我的offer #
2799643次浏览 49735人参与
# 在国企工作的人,躺平了吗? #
71605次浏览 868人参与
# 简历中的项目经历要怎么写 #
378246次浏览 6360人参与
# 非技术岗薪资爆料 #
6895次浏览 135人参与
# 你更愿意参加线上面试还是线下面试? #
6464次浏览 90人参与
# 非技术薪资爆料 #
63693次浏览 954人参与
# 华为求职进展汇总 #
438726次浏览 4411人参与
# 第一次面试 #
15688次浏览 239人参与
# 租房前辈的忠告 #
20748次浏览 1647人参与
# 应届生应该先就业还是先择业 #
12091次浏览 114人参与
# 安利/避雷我的岗位 #
122263次浏览 2752人参与
# 来聊聊机械薪资天花板是哪家 #
20774次浏览 165人参与
# 机械人怎么评价今年的华为 #
53983次浏览 442人参与
# 谈薪时HR压价该怎么应对 #
33020次浏览 204人参与
# 通信硬件薪资爆料 #
145044次浏览 1078人参与
# 毕业租房也有小确幸 #
19801次浏览 1249人参与
# 数据人offer决赛圈怎么选 #
36611次浏览 658人参与
# 正在实习的你,有转正机会吗? #
83226次浏览 865人参与