概念
0.P、NP问题
P问题指不用穷举所有可能路径,如dijkstra算法
NP问题需要遍历所有可能结果,如旅行商问题,32个省就32!种结果
P=NP就是能否不需要全遍历就解决NP问题?
1.时间复杂度?大O?
评估算法运行的时间一般用语句运行次数来表示.
大O是渐进上界,看是否为同一数量级
2.逻辑结构?物理存储结构?
1)线性(栈和队列数组链表) 非线性(集合 MAP 树图)
2)顺序、 链式、 索引、 哈希存储
3.DP和分治的区别在哪?
共同:都是把问题划分为更小的子问题
区别: DP的子问题重叠,因此可以记录防止重复计算
分治的子问题相互独立,独立子问题结构相似 分解再合并
贪心:局部最优解不一定是全局最优解
4.说说串的模式匹配 / KMP算法?
朴素匹配: 失败下移一位,比子串
KMP:
前后缀、next数组
模式根据前缀后缀,建一张最大长度表表,算出n