二分查找高效判定子序列

判断子序列
二分思路主要是对t进行预处理,用一个字典index将每个字符出现的索引位置按顺序存储下来

int m = s.length(), n = t.length();
vector<vector<int>> index(256, vector<int>());
// 先记下 t 中每个字符出现的位置
for (int i = 0; i < n; i++) {
    char c = t[i];
    index[c].push_back(i);
}

借助index中记录的信息,可以二分搜索index[c]中比j大的那个索引

posted @ 2023-04-14 18:42  bothgone  阅读(14)  评论(0)    收藏  举报