关注
主要思路:用两个指针分别指向子串的开头和结尾,分别找到两个子串的结束位置。然后根据两个子串之间的关系来更新最长子串的长度。 具体实现: 1.如果数组长度小于等于0,则返回0。 2.初始化变量res为0,start1和end1指针都指向数组的第一个元素。 3.首先找到第一个子串的结尾位置end1,在子串严格递增时一直向后移动end1指针。 4.如果发现整个数组是严格递增的,则直接返回整个数组的长度。 5.接下来寻找另一个子串的开始位置start2,从end1+1开始,然后找到这个子串的结尾位置end2,同样也是在子串严格递增的情况下一直向后移动end2指针。 6.然后分别判断两个子串之间的关系,并根据不同的情况来更新最长子串的长度: ①如果两个子串之间不存在空隙,则直接更新最长子串的长度,即res=max(res,end2-start2+end1-start1+2)。 ②如果两个子串之间有空隙,则更新最长子串的长度为两个子串中长度最长的那个加上1,即res=max(res,max(end2-start2,end1-start1)+2)。 7.最后更新start1和end1指针为start2和end2,继续寻找下一个符合条件的子串,直到end1指向数组的最后一个元素为止。 8.返回最长子串长度res即可。 时间复杂度:O(n)
点赞
相关推荐
牛客热帖
正在热议
# 25届秋招总结 #
247347次浏览 2012人参与
# 学历or实习经历,哪个更重要 #
41032次浏览 298人参与
# 北方华创开奖 #
22776次浏览 259人参与
# 地方国企笔面经互助 #
2536次浏览 6人参与
# 你最想要的公司福利是? #
39900次浏览 126人参与
# 选完offer后,你后悔学本专业吗 #
10374次浏览 75人参与
# 面试题刺客退退退 #
137088次浏览 2092人参与
# 国企/银行/研究所公司爆料 #
89699次浏览 412人参与
# 应届生被毁约被毁意向了怎么办 #
27084次浏览 238人参与
# 一觉醒来,我觉醒了超级打工人系统 #
2880次浏览 35人参与
# 机械应届生薪资要多少才合适? #
12385次浏览 60人参与
# 查收我的offer竞争力报告 #
16732次浏览 228人参与
# 校招入职后的感受 #
156908次浏览 1961人参与
# 你觉得第一学历对求职有影响吗? #
14878次浏览 121人参与
# 没有实习经历,还有机会进大厂吗 #
804978次浏览 13813人参与
# 我的工作日记 #
21164次浏览 270人参与
# 不给转正的实习,你还去吗 #
1516831次浏览 16964人参与
# 寒假躺平还是提前实习 #
58403次浏览 438人参与
# 总结:哪家公司面试体验感最差 #
25724次浏览 129人参与
# 秋招OC许愿 #
226514次浏览 1870人参与
# 如何写一份好简历 #
602059次浏览 8440人参与