
数据结构与算法
Allenlzcoder
拒绝拖延症!!!
展开
-
常见的算法题目分类图
图片来自:https://www.zhihu.com/question/23148377/answer/907915556转载 2020-02-26 00:54:00 · 296 阅读 · 0 评论 -
算法题模板
本文内容来自于花花酱的公众号内容,现整理为博客如下。1.二分搜索模板(Binary search template)参考链接:https://zxi.mytechroad.com/blog/template/binary-search-template/C++// Author: Huahua// Returns the smallest m in [l, r),// s.t. con...转载 2020-02-26 00:28:20 · 665 阅读 · 0 评论 -
散列表(哈希表)(散列函数构造、处理冲突、查找)
本文转载自:[1]https://blog.csdn.net/qq_22238021/article/details/78258605[2]https://blog.csdn.net/duan19920101/article/details/51579136?utm_source=copy什么是哈希表(散列表)?哈希表(Hash table,也叫散列表),是根据关键码值(Key value...转载 2018-10-06 18:01:32 · 1109 阅读 · 0 评论 -
海量数据处理面试题集锦
本文参考链接:https://blog.csdn.net/u013949069/article/details/78056102?utm_source=copy问题1一个文本文件,大约有一万行,每行一个词,要求统计出其中最频繁出现的前10个词,请给出思想,给出时间复杂度分析。之前在此文,海量数据处理面试题集锦与Bit-map详解中给出的参考答案:用Trie树统计每个词出现的次数,时间复杂...转载 2018-09-25 14:54:21 · 422 阅读 · 0 评论 -
后缀树(Suffix tree)
概述后缀树,就是把一串字符的所有后缀保存并且压缩的字典树。相对于字典树来说,后缀树并不是针对大量字符串的,而是针对一个或几个字符串来解决问题。比如字符串的回文子串,两个字符串的最长公共子串等等。性质:一个字符串构造了一棵树,树中保存了该字符串所有的后缀。操作:就是建立和应用。(1)建立后缀树比如单词banana,它的所有后缀显示到下面的。0代表从第一个字符为起点,终点不用说都是字符串的...转载 2018-09-23 21:54:53 · 1609 阅读 · 0 评论 -
前缀树(字典树,单词查找树,Trie树)
参考网址:https://blog.csdn.net/u013949069/article/details/78056102?utm_source=copy概述前缀树又名字典树,单词查找树,Trie树,是一种多路树形结构,是哈希树的变种,和hash效率有一拼,是一种用于快速检索的多叉树结构。典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它...转载 2018-09-23 21:13:33 · 1477 阅读 · 0 评论 -
利用位运算实现加减乘除
利用位运算实现加减乘除受《剑指offer》上题目的启发,现在把利用位运算做加、减、乘、除的方法总结一下。 参考网址:https://blog.csdn.net/sinat_35261315/article/details/72904945基础知识数据在计算机内存中是以二进制存储的。 几种常用的位运算: ⋅⋅····与运算 &: 对应位均为1时为1,其它为0。 ⋅⋅...转载 2018-09-10 16:18:24 · 1229 阅读 · 0 评论 -
【To Understand】动态规划:求最长公共子串/最长公共子序列
动态规划:求最长公共子串/最长公共子序列本博客转载自:https://blog.csdn.net/u013074465/article/details/45392687 该博客中详细讲解了求最长公共子串/和最长公共子序列等动态规划的经典题目!...转载 2018-06-01 09:38:23 · 280 阅读 · 0 评论 -
【To Do 难点】最大搜索二叉树
最大搜索二叉树本博客转载自:https://blog.csdn.net/jingsuwen1/article/details/51920731 题目描述:给定一颗二叉树,已知其中所有节点的值都不一样,找到含有节点最多的二叉搜索树,并返回头节点。 注:一个二叉树的子树的叶节点必须是该二叉树的叶节点。 解答:以节点root为头的树中,最大的二叉搜索树只可能来自以下两种情况。 1.如果来自r...转载 2018-05-29 09:22:37 · 255 阅读 · 0 评论 -
【TO DO!】二分查找各种情况大总结
二分查找各种情况大总结本博客转载自:https://blog.csdn.net/yefengzhichen/article/details/52372407#comments 原博客代码是java版本的,我给改成了C++版本的。 二分查找多次刷题时遇到,虽然每次也能写对,但花了蛮多时间,没好好想过。而且网上的太多版本,并不是很简洁,而且边界条件变化情况太多,容易混淆,下面是自己对二分查找的...转载 2018-04-27 10:58:10 · 266 阅读 · 0 评论 -
七大查找算法
七大查找算法常用的七大查找算法总结的比较好的链接: https://www.cnblogs.com/maybe2030/p/4715035.html原创 2018-04-06 23:05:01 · 668 阅读 · 0 评论 -
常用排序算法总结
常用排序算法总结在网上找到了关于常见排序算法总结的比较好的两篇帖子,把链接复制如下: 常用排序算法总结(一):https://www.cnblogs.com/eniac12/p/5329396.html 常用排序算法总结(二):http://www.cnblogs.com/eniac12/p/5332117.html...转载 2018-04-04 10:57:04 · 409 阅读 · 0 评论 -
翻转链表的算法实现
翻转链表的算法实现本博客转载自:https://www.cnblogs.com/csbdong/p/5674990.html http://blog.csdn.net/hyqsong/article/details/49429859并对内容进行适当整理。 此题为《剑指offer》上面的面试题16。具体请看另一篇博客...原创 2018-03-11 09:46:39 · 390 阅读 · 0 评论 -
快慢指针算法及其应用
快慢指针算法及其应用最近在做LeetCode上的题,学习了快慢指针算法,找到了连篇比较好的博客,先记录下来,后续有空再实际分析。 基本算法:https://www.cnblogs.com/songdechiu/p/6686520.html 扩展应用:https://www.cnblogs.com/hxsyl/p/4395794.html...原创 2018-02-27 00:22:58 · 2436 阅读 · 0 评论 -
双指针常见用法2
本文是总结双指针用法的第二篇文章,文章内容主要转载自:http://www.cnblogs.com/titer1/archive/2012/03/30/2425824.html和。。。。。 双指针应用之五:本质方法与上篇文章中双指针应用之一中的用法一致。 例2:这题来自编程之美2.21只考加法的面试题,原题大致意思是写一个程序,对于一个32位整数,输出它所有可能的转载 2017-10-11 00:51:04 · 611 阅读 · 0 评论 -
双指针常见用法1
所谓双指针,指的是在遍历对象的过程中,不是普通的使用单个指针进行访问,而是使用两个相同方向或者相反方向的指针进行扫描,从而达到相应的目的。 换言之,双指针法充分使用了数组有序这一特征,从而在某些情况下能够简化一些运算。 (注:这里的指针,并非专指c中指针的概念,而是指索引,游标或指针,可迭代对象等)转载 2017-10-10 16:52:16 · 688 阅读 · 0 评论 -
3.复杂度分析
复杂度分析在算法复杂度度量的三种记号中,大O记号是最常用的。从渐进的角度分析,大O记号把各算法的复杂度由低到高划分为很多层次,现在逐一进行介绍。1.常数O(1)运行时间可表示为T(n)=O(1)的这一类算法,统称为“常数时间复杂度算法”。若代码中不含转向(循环,调用,递归等)必顺序执行,其复杂度即是O(1)。此类算法是最理想的。2.对数O(logn)运行时间可表示为的这一类算法原创 2017-09-14 23:20:33 · 871 阅读 · 0 评论 -
通过深度优先搜索(DFS)对图的边进行分类
对于在图G上进行深度优先搜索算法所产生的深度优先森林Gt,我们可以定义四种边的类型: 1.树边(Tree Edge):为深度优先森林中Gt的边。如果结点v是因算法对边(u,v)的搜索而首先被发现,则(u,v)是一条树边。 2.后向边(Back Edge):后向边(u,v)是将结点u连接到其在深度优先树中(一个)祖先结点v的边,由于有向图中可以有自循环,自循环也被原创 2017-08-21 10:51:56 · 2954 阅读 · 0 评论 -
2.算法复杂度度量
复杂度度量 1.时间复杂度 特定算法处理规模为n的问题所需要的时间可记作T(n),严格来说这个定义并不明确。为此需要做进一步简化,即从保守估计的角度出发,在规模为n的所有输入中选择执行时间最长者作为T(n),并以T(n)度量该算法的时间复杂度。 2.渐进复杂度 着重长远、更为注重时间复杂度的总体变化趋势和增长速度的策略与方法,原创 2017-08-17 00:32:05 · 2910 阅读 · 0 评论 -
1.算法基本要素
算法:是指基于特定的计算模型,旨在解决某一信息处理问题而设计的一个指令序列。 一般来说,算法应该具备下面5个要素: 1.输入输出 2.基本操作、确定性与可行性 3.有穷性与正确性 4.退化与鲁棒性 5.5.重用性原创 2017-08-16 00:24:18 · 11759 阅读 · 0 评论