关注
static final int LONGEST_STR_LEN = 8192;
public int getLongestStrStartIndex(int l, int r) {
int mid = (l + r) / 2;
if (getMaxLength(l, mid) == LONGEST_STR_LEN) { //最长字符串出现在左边
return getLongestStrStartIndex(l, mid);
}
if (getMaxLength(mid + 1, r) == LONGEST_STR_LEN) {//最长字符串出现在右边
return getLongestStrStartIndex(mid + 1, r);
}
//最长字符串在中间, 剩下的工作是二分找从 l 至 mid 中 getMaxLength最大的下标, 就是最后的答案.
// |___________|_____________|_______________________________|
// l A B C mid r
// 先比较 int b = getMaxLength(B, mid) 和 int c = getMatLength(C, mid)
// 如果一样, 说明要的结果在 (c, mid)中间, 继续二分.
// 如果前者大, 比较int a = getMaxLength(A, mid) 和 b, 如果一样大说明结果在(B, C)中间
// 如果 a 大说明结果在(l, B)中间.
return ...;
} 大概还有更好的解法吧.
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
转发
点赞 评论 收藏
转发
牛客热帖
正在热议
# 牛友的五一计划 #
9876次浏览 220人参与
# 无实习如何秋招上岸 #
171507次浏览 2711人参与
# 牛客帮帮团来啦!有问必答 #
391326次浏览 7740人参与
# 如何看待offer收割机的行为 #
192545次浏览 2970人参与
# 如何一边实习一边秋招 #
200264次浏览 3983人参与
# 晒一晒我的offer #
2813349次浏览 49823人参与
# 春招别灰心,我们一人来一句鼓励 #
20710次浏览 304人参与
# 非技术岗薪资爆料 #
7622次浏览 152人参与
# 硬件人的春招flag #
14485次浏览 199人参与
# 在国企工作的人,躺平了吗? #
72327次浏览 876人参与
# 来聊聊机械薪资天花板是哪家 #
21909次浏览 172人参与
# 机械人,你的秋招第一份简历被谁挂了 #
26854次浏览 491人参与
# 第一次面试 #
16215次浏览 245人参与
# 你更愿意参加线上面试还是线下面试? #
6762次浏览 93人参与
# 华为求职进展汇总 #
440560次浏览 4424人参与
# 女生做医疗销售有前景吗 #
3814次浏览 48人参与
# 简历中的项目经历要怎么写 #
379672次浏览 6385人参与
# 通信硬件薪资爆料 #
146817次浏览 1108人参与
# 产品实习,你更倾向大公司or小公司 #
31140次浏览 489人参与
# 机械人的薪资开到多少,才适合去? #
44867次浏览 267人参与