![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
点解质
这个作者很懒,什么都没留下…
展开
-
有效的回文字符串
问题描述:回文字符串的定义是,如果反转后的字符串和原字符完全相同(只考虑字符串中的字母和数字,并且忽略字母的大小写),那么该字符串即为回文字符串。 判断一个字符串是否为有效的回文字符串,应该使用相向双指针算法,即声明两个指针,分别指向第一个和最后一个字符。如果存在非字母或非数字的字符,则移动相应的指针到下一个字符。将字母转换为小写字母后,比较两个字符,如果两个指针指向的字符不同,则...原创 2018-08-12 14:19:02 · 186 阅读 · 0 评论 -
字符串查找之暴力匹配法
问题描述:在长度为m的字符串source中,寻找长度为n的字符串target。如果source字符串中存在target字符串,则返回字符串target第一次在字符串source中出现的位置;如果不存在,则返回-1。 一个最朴素的想法是使用暴力匹配法:将source中的字符与target中的字符逐一比较,如果source的当前字符与target的首字符相等,则继续比较它们的下一字符,...原创 2018-08-11 16:49:25 · 1372 阅读 · 0 评论 -
字符串查找之Rabin Karp算法
本文承接《字符串查找之暴力匹配法》一文。 使用暴力匹配法查找字符串虽然简单直观,但是时间复杂度太高。对于字符串查找,被广泛接受的标准算法是KMP算法,其时间复杂度只有O(m+n)时间,但是KMP算法难以理解且没有普适性。本文将介绍的Rabin Karp算法,不但容易理解,而且可以达到和KMP算法相同的时间复杂度。 Rabin Karp算法的思想基于暴力匹配法,字符串...原创 2018-08-12 18:28:19 · 311 阅读 · 0 评论 -
排序数组的两数之和
class Solution {public: /** * @param nums: an array of Integer * @param target: target = nums[index1] + nums[index2] * @return: [index1, index2] (index1 < index2) */ ...原创 2018-08-19 12:33:39 · 431 阅读 · 0 评论 -
拓扑排序
/** * Definition for Directed graph. * struct DirectedGraphNode * { * int label; * vector<DirectedGraphNode *> neighbors; * DirectedGraphNode(int x) : label(x) {}; * }; */...原创 2018-08-26 15:22:38 · 124 阅读 · 0 评论