关注
主要思路:用两个指针分别指向子串的开头和结尾,分别找到两个子串的结束位置。然后根据两个子串之间的关系来更新最长子串的长度。 具体实现: 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)
点赞
相关推荐
07-13 12:18
华南师范大学 Unity3D客户端 点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 哪些公司开提前批了? #
28117次浏览 269人参与
# 入职以后才知道的校招谎言 #
88753次浏览 583人参与
# 风评不好的公司,你会去吗? #
63791次浏览 450人参与
# 华子oc时间线 #
1244682次浏览 6487人参与
# 哪些公司校招卡第一学历 #
70661次浏览 281人参与
# 校招第一份工作你干了多久? #
95328次浏览 423人参与
# 实习如何「偷」产出? #
53207次浏览 1358人参与
# 除了主业以外,你还有哪些其他收入? #
12724次浏览 202人参与
# 不卡学历的大厂有哪些? #
30851次浏览 234人参与
# 机械人,你的第一份感谢信是谁给的 #
30628次浏览 310人参与
# 校招阶段,学历VS技术哪个更重要? #
18354次浏览 188人参与
# 职场新人体验 #
27430次浏览 251人参与
# 研究所笔面经互助 #
78609次浏览 483人参与
# 工作丧失热情的瞬间 #
294190次浏览 2372人参与
# 腾讯音乐求职进展汇总 #
98303次浏览 571人参与
# 你的秋招第一场笔试是哪家 #
148351次浏览 1485人参与
# 社恐入职新公司如何融入团队 #
12108次浏览 63人参与
# 华为开奖那些事 #
4094942次浏览 24608人参与
# 校园里的破防时刻 #
12152次浏览 128人参与
# Offer比较,你最看重什么? #
191928次浏览 1308人参与