一轮的算法训练完成后,对相关的题目有了一个初步理解了,接下来进行专题训练,以下这些题目就是汇总的高频题目,本篇主要聊聊数组,包括数组合并,滑动窗口解决最长无重复子数组问题,图形法解下一个排列问题,以及一些常见的二维矩阵问题,所以放到一篇Blog中集中练习
题目 | 关键字 | 解题思路 | 时间 | 空间 |
---|---|---|---|---|
最长无重复子串 | 滑动窗口+双指针+辅助哈希 | 左右两个指针,如果非重复,right前进并将元素放入哈希,如果重复则left前进并持续移除重复元素,直到重复元素从集合中移除 | O(n) | O(n) |
最长回文子串 | 中心扩散法+双指针 | 遍历每个字符,以该字符为基准分别进行奇数扩散和偶数扩散,取较大的作为当前字符最长回文子串并与结果比较更新结果 | O(n*n) | O(1) |