魔法师 (@Constanline)2213. 由单个字符重复的最长子字符串 中发帖

 
失败的链表解法,TLE
思路
慢在每次要更新字符和统计长度都需要 O(n) ,总时间复杂度 O(n^2) 了。考虑增加索引、有序队列、B+树、线段树等等,然后昨天忙别的把这事忘了 🤣
今天看了提示,用线段树。思路定下之后一切都变简单了。
线段树+分治,建树的时候 n\log_2(n) ,每次更新的时候根据位置找到对应子树递归,统计的时候从更新位置上推,都是 \log_2(n) 就能完成。总时间复杂度 n\log_2(n) 。
代码
class Solution {
private static class Segment {
public char preChar;
public char sufChar;
public int preCnt;
public int sufCnt;
...