数据结构与算法
-Lifeline
这个作者很懒,什么都没留下…
展开
-
C++——KMP字符串模式匹配算法
KMP字符串模式匹配算法当我们使用简单字符串模式匹配算法时,时间复杂度为O(n*m),这里n为目标串的长度,m为模式串的长度。在循环的过程中,有很多次匹配其实存在回溯,浪费了很多时间。可以根据模式串本身的性质来设计一个新的高效算法,即跳过肯定不匹配的循环,而直接从左边子串已经相同的位置开始比较,时间复杂度大大降低,该算法就是KMP字符串模式匹配算法。#include <iostream&...原创 2019-03-30 19:14:48 · 799 阅读 · 0 评论 -
C++——队列应用——显示二项式系数
C++——队列应用——显示二项式系数二项式(a+b)^i展开的系数构成杨辉三角形(Pascal三角形)每一行的首位都是1,中间的数值ai为上一层a(i-1)与ai之和,以此类推。我们利用队列的FIFO的特点来存储每层的数值,将三角形按照层次顺序依次存储在队列里。#include <iostream>#include <queue>using namespace...原创 2019-03-30 19:34:08 · 1290 阅读 · 0 评论 -
C++——括号匹配算法
括号匹配算法利用栈的LIFO的特点,我们可以进行左右括号的匹配,“()【】{}”在右括号“)】}”左边最近的左括号必须是相对应的“(【{”,否则就不合法每次匹配一对正确的括号,就要将其出栈,为外层的括号腾出空间。#include <iostream>#include <stack>using namespace std; bool isValid(s...原创 2019-03-30 21:01:35 · 3590 阅读 · 0 评论 -
C++——平衡二叉树的判断
给定一个二叉树,编程判断其是否是一个二叉平衡树。我们以Leetcode 110题为例来看。平衡二叉树给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。示例 1:给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7...原创 2019-04-21 23:04:56 · 2113 阅读 · 0 评论 -
C++ Vector基本用法介绍
学习C++ -> 向量(vector)一、向量的介绍向量 vector 是一种对象实体, 能够容纳许多其他类型相同的元素, 因此又被称为容器。 与string相同, vector 同属于STL(Standard Template Library, 标准模板库)中的一种自定义的数据类型, 可以广义上认为是数组的增强版。在使用它时, 需要包含头文件 vector, #includevec...转载 2019-04-18 19:41:33 · 695 阅读 · 0 评论