E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
ACM_数据结构基础
算法面试不懂这6大数据结构知识一定挂!(附力扣LeetCode真题讲解)
资深技术工程师首发地址:https://mp.weixin.qq.com/s/u8pvmupISQ5D4kGIkgfKbA在互联网行业的算法面试中经常会被考到数据结构的知识,它与算法相辅相成,没有扎实的
数据结构基础
soledadzz
·
2019-09-04 00:00
算法与
数据结构基础
- 贪心(Greedy)
贪心基础贪心(Greedy)常用于解决最优问题,以期通过某种策略获得一系列局部最优解、从而求得整体最优解。贪心从局部最优角度考虑,只适用于具备无后效性的问题,即某个状态以前的过程不影响以后的状态、紧接下来的状态仅与当前状态有关。和分治、动态规划一样,贪心是一种思路,不是解决某类问题的具体方法。应用贪心的关键,是甄别问题是否具备无后效性、找到获得局部最优的策略。有的问题比较浅显,例如一道找零钱的题目
bangerlee
·
2019-08-31 13:00
数据结构基础
之二叉树的深度优先遍历、广度优先遍历
原文链接:https://me.csdn.net/bjweimengshu什么是二叉树?树的每个节点最多有2个孩子节点。注意,最多有2个,也可能1个或0个。什么是满二叉树?所有非叶子节点都存在左右孩子,并且所有叶子节点都在同一层级(这里的叶子节点不曾作为某一个子树的根,即该树的最后一层)。满二叉树的每一个分支都是满的。什么是完全二叉树?在最后一个叶子节点前的所有节点是满的。树是非线性数据结构,二叉
Carolinedy
·
2019-08-28 17:54
数据结构
数据结构基础
之数组、链表、栈、队列、哈希表的学习笔记
原文链接:https://me.csdn.net/bjweimengshu目录时间复杂度空间复杂度数组array链表linkedlist栈stack队列stack哈希表hashtableNote:本篇内容总结自《漫画算法》时间复杂度把程序的相对执行时间函数T(n)简化为一个数量级,用大写的O表示,T(n)=O(f(n))。时间复杂度的推导原则:如果运行时间是常数量级,则用常数1表示;只保留时间函数
Carolinedy
·
2019-08-28 14:00
数据结构
算法与
数据结构基础
- 双指针(Two Pointers)
双指针基础双指针(TwoPointers)是面对数组、链表结构的一种处理技巧。这里“指针”是泛指,不但包括通常意义上的指针,还包括索引、迭代器等可用于遍历的游标。同方向指针设定两个指针、从头往尾(或从尾到头)遍历,我称之为同方向指针,第一个指针用于遍历,第二个指针满足一定条件下移动。例如LeetCode题目283.MoveZeroes://283.MoveZeroesvoidmoveZeroes(
bangerlee
·
2019-08-15 15:00
算法与
数据结构基础
- 分治法(Divide and Conquer)
分治法基础分治法(DivideandConquer)顾名思义,思想核心是将问题拆分为子问题,对子问题求解、最终合并结果,分治法用伪代码表示如下:functionf(inputxsizen)if(n
bangerlee
·
2019-08-13 13:00
算法与
数据结构基础
- 排序(Sort)
排序基础排序方法分两大类,一类是比较排序,快速排序(QuickSort)、归并排序(MergeSort)、插入排序(InsertionSort)、选择排序(SelectionSort)、希尔排序(ShellSort)、堆排序(HeapSort)等属于比较排序方法,比较排序方法理论最优时间复杂度是O(nlogn),各方法排序过程和原理见可视化过程。另一类是非比较排序,被排序元素框定范围的前提下可使用
bangerlee
·
2019-08-12 11:00
算法与
数据结构基础
- 链表(Linked List)
链表基础链表(LinkedList)相比数组(Array),物理存储上非连续、不支持O(1)时间按索引存取;但链表也有其优点,灵活的内存管理、允许在链表任意位置上插入和删除节点。单向链表结构一般如下://Definitionforsingly-linkedlist.structListNode{intval;ListNode*next;ListNode(intx):val(x),next(NULL
bangerlee
·
2019-08-06 23:00
算法与
数据结构基础
- 哈希表(Hash Table)
HashTable基础哈希表(HashTable)是常用的数据结构,其运用哈希函数(hashfunction)实现映射,内部使用开放定址、拉链法等方式解决哈希冲突,使得读写时间复杂度平均为O(1)。HashMap(std::unordered_map)、HashSet(std::unordered_set)的原理与HashTable一样,它们的用途广泛、用法灵活,接下来侧重于介绍它们的应用。相关L
bangerlee
·
2019-08-05 17:00
面试准备篇之算法岗
面试准备篇之算法岗简介一、语言基础知识准备(一)C++(二)Python基础教程pythonparser模块(三)Pytorch(四)Tensorflow二、算法与
数据结构基础
知识准备(一)刷题专栏剑指
duter_sun先生
·
2019-08-04 17:13
C++
机器学习
深度学习
算法与数据结构
python
机器学习
深度学习
C++
算法与数据结构
python
算法与
数据结构基础
- 二叉树(Binary Tree)
二叉树基础满足这样性质的树称为二叉树:空树或节点最多有两个子树,称为左子树、右子树,左右子树节点同样最多有两个子树。二叉树是递归定义的,因而常用递归/DFS的思想处理二叉树相关问题,例如LeetCode题目104.MaximumDepthofBinaryTree://104.MaximumDepthofBinaryTreeintmaxDepth(TreeNode*root){if(root==NU
bangerlee
·
2019-07-31 13:00
算法与
数据结构基础
- 广度优先搜索(BFS)
BFS基础广度优先搜索(BreadthFirstSearch)用于按离始节点距离、由近到远渐次访问图的节点,可视化BFS通常使用队列(queue)结构模拟BFS过程,关于queue见:算法与
数据结构基础
bangerlee
·
2019-07-28 16:00
1-3
数据结构基础
概念
数据结构:数据:所有能被输入到计算机中,且被计算机处理的符号的集合。数据元素:是数据的基本单元,由若干个数据项组成,也成为结点。数据项:是数据不可分割的最小单元,有时也成域(字段)。数据对象:是指相同性质数据元素构成的集合。数据结构:是互相之间存在一种或多种关系的数据元素的集合。数据元素之间的关系,称为结构。4种逻辑结构:1.集合:数据元素之间“同属一个集合”。2.线性结构:一个对一个,一对一关系
csdn_DaShuiNiu
·
2019-07-26 23:03
自主文章记录
Java算法与数据结构
算法与
数据结构基础
- 堆(Heap)和优先级队列(Priority Queue)
堆基础堆(Heap)是具有这样性质的数据结构:1/完全二叉树2/所有节点的值大于等于(或小于等于)子节点的值:图片来源:这里堆可以用数组存储,插入、删除会触发节点shift_down、shift_up操作,时间复杂度O(logn),可视化构建堆堆是优先级队列(Priorityqueue)的底层数据结构,较常使用优先级队列而非直接使用堆处理问题。利用堆的性质可以方便地获取极值,例如LeetCode题
bangerlee
·
2019-07-18 18:00
Redis
数据结构基础
教程
Redis
数据结构基础
教程Redis有5个基本数据结构,string、list、hash、set和zset。
浅嫣
·
2019-07-16 12:14
redis基础数据结构
算法与
数据结构基础
- 堆栈(Stack)
堆栈基础堆栈(stack)具有“后进先出”的特性,利用这个特性我们可以用堆栈来解决这样一类问题:后续的输入会影响到前面的阶段性结果。线性地遍历输入并用stack处理,这类问题较简单,求解时间复杂度一般为O(n)。相关LeetCode题:13.RomantoInteger题解20.ValidParentheses题解844.BackspaceStringCompare题解1047.RemoveAll
bangerlee
·
2019-07-05 15:00
算法与
数据结构基础
- 队列(Queue)
队列基础队列具有“先进先出”的特点,用这个特点我们可以用它来处理时间序列相关或先后次序相关的问题,例如LeetCode题目933.NumberofRecentCalls,时间复杂度O(1)://933.NumberofRecentCallsprivatequeueq;publicintping(intt){q.push(t);while(q.front()killProcess(vector&pi
bangerlee
·
2019-07-03 17:00
【算法与数据结构】必备知识点汇总
1.
数据结构基础
2.线性表(顺序存储、链式存储)元素之间是有顺序的:第一个元素无前驱,最后一个元素无后继,其他元素都有前驱和后继顺序存储结构:用一段地址连续的存储单元一次存储线性表的数据元素(存取时间复杂度为
Asher117
·
2019-07-01 19:14
算法
数据结构
知识点
汇总
总结
算法与数据结构
算法面试必会的6大数据结构知识(附力扣LeetCode真题讲解)
在互联网行业的算法面试中经常会被考到数据结构的知识,它与算法相辅相成,没有扎实的
数据结构基础
,学好算法几乎不太可能。
开悟班主任Abby
·
2019-06-27 14:18
算法
面试
python算法和
数据结构基础
——list和dict的内置操作的时间复杂度
我们已知python是具有非常多的包一种开源语言,封装了各种算法。python典型的数据结构为列表/元组/字符串/字典,与C/C++中的数组(array)/栈(stack)/(优先)队列”(queue)/二叉树(binarytree)有明显区别。在python官网中指出,列表可以作为栈和队列使用,但是并未给出特别详细具体的教程。在python官网上有关于list和dict数据结构的描述参考,如链接
wunature2010
·
2019-06-20 16:38
算法
算法竞赛入门经典 PDF免费下载 附书单
全书内容分为11章,包括程序设计入门、循环结构程序设计、数组和字符串、函数和递归、基础题目选解、
数据结构基础
、暴力求解法、高效算法设计、动态规划初步、数学概念与方法、图论模型与算法,覆盖了算法竞赛入门所需的主要知识点
KangHuasen
·
2019-06-13 10:53
资源下载
漫画算法-小灰的算法之旅-
数据结构基础
(二)
1.逻辑结构和物理结构2.数组VS链表3.栈4.队列5.散列表1.逻辑结构和物理结构逻辑结构:线性结构:顺序表、栈、队列非线性结构:树、图物理结构:顺序存储结构:数组链式存储结构:链表2.数组VS链表相关操作的性能:查找更新插入删除数组O(1)O(1)O(n)O(n)链表O(n)O(1)O(1)O(1)可以看出,数组的优势在于能够快速定位元素,对于读操作多、写操作少的场景来说比较合适;链表的优势在
YETA
·
2019-06-10 20:14
数据结构与算法分析
算法与
数据结构基础
- 二叉查找树(Binary Search Tree)
二叉查找树基础二叉查找树(BST)满足这样的性质,或是一颗空树;或左子树节点值小于根节点值、右子树节点值大于根节点值,左右子树也分别满足这个性质。利用这个性质,可以迭代(iterative)或递归(recursive)地用O(lgN)的时间复杂度在二叉查找树中进行值查找。相关LeetCode题:700.SearchinaBinarySearchTree题解701.InsertintoaBinary
bangerlee
·
2019-06-03 14:00
数据结构与算法
时间复杂度问题因为在刷leecode的时候涉及时间复杂度的问题,还是需要把本科学习的
数据结构基础
知识进行整理1.4算法及其复杂性算法的复杂性时间复杂性:算法中基本操作重复执行的次数是问题规模n的某个函数
胡涂涂
·
2019-05-31 17:22
数据结构与算法(Java版本)
算法与
数据结构基础
- 字典树(Trie)
Trie基础Trie字典树又叫前缀树(prefixtree),用以较快速地进行单词或前缀查询,Trie节点结构如下://208. ImplementTrie(PrefixTree)classTrieNode{public:TrieNode*children[26];//或用链表、map表示子节点boolisWord;//标识该节点是否为单词结尾TrieNode(){memset(children,
bangerlee
·
2019-05-29 18:00
C++视频教程全套下载
其内容涵盖了C++语言的基本语法、面向对象的概念和程序设计方法、
数据结构基础
、模板和泛型程序设计简介。从零开始、由浅入深、层层递进、细致而又详尽地讲解C++这门大型编程语言。
xmy99
·
2019-05-22 22:23
计算机教程
数据结构基础
知识
数据结构基础
知识数据的基本概念数据结构的"三要素"算法基本概念算法特性算法目的算法效率的度量时间复杂度:空间复杂度数据的基本概念数据:数据是信息的载体,是描述事物属性的数字符号以及所有能输入到计算机中被程序识别和处理的符号的集合
21世纪成精的二哈
·
2019-05-18 08:00
数据结构
Java集合框架面试题几乎必问
Arraylist与LinkedList异同补充:
数据结构基础
之双向链表ArrayList与Vector区别HashMap的底层实现JDK1.8之前JDK1.8之后HashMap和Hashtable的区别
杰梵
·
2019-04-22 10:50
算法与
数据结构基础
(三)之重建二叉树
算法与
数据结构基础
(三)之重建二叉树0、简介1、已知前序、中序遍历,求后序遍历2、已知中序、后序遍历,求前序遍历3、已知前序、后序遍历,求中序遍历代码实现0、简介前序遍历(根–>左–>右)中序遍历(左–
duter_sun先生
·
2019-04-21 23:38
C++
算法与数据结构
算法与
数据结构基础
- 合并查找(Union Find)
UnionFind算法基础UnionFind算法用于处理集合的合并和查询问题,其定义了两个用于并查集的操作:Find:确定元素属于哪一个子集,或判断两个元素是否属于同一子集Union:将两个子集合并为一个子集并查集是一种树形的数据结构,其可用数组或unordered_map表示:Find操作即查找元素的root,当两元素root相同时判定他们属于同一个子集;Union操作即通过修改元素的root(
bangerlee
·
2019-04-20 15:00
算法与
数据结构基础
(二)之链表
算法与
数据结构基础
(二)之链表1、链表的创建1、链表的创建#includeusingnamespacestd;/*创建一个单链表*/structListNode{intm_key;ListNode*next
duter_sun先生
·
2019-04-19 08:57
C++
算法与数据结构
算法与
数据结构基础
- 滑动窗口(Sliding Window)
滑动窗口基础滑动窗口常用来解决求字符串子串问题,借助map和计数器,其能在O(n)时间复杂度求子串问题。滑动窗口和双指针(Twopointers)有些类似,可以理解为往同一个方向走的双指针。常用滑动窗口代码框架如下://3.LongestSubstringWithoutRepeatingCharactersintlengthOfLongestSubstring(strings){vectorv(1
bangerlee
·
2019-04-18 11:00
算法与
数据结构基础
- 拓扑排序(Topological Sort)
拓扑排序基础拓扑排序用于解决有向无环图(DAG,DirectedAcyclicGraph)按依赖关系排线性序列问题,直白地说解决这样的问题:有一组数据,其中一些数据依赖其他,问能否按依赖关系排序(被依赖的排在前面),或给出排序结果。最常用解决拓扑排序问题的方法是Kahn算法,步骤可以概括为:1.根据依赖关系,构建邻接矩阵或邻接表、入度数组2.取入度为0的数据(即不依赖其他数据的数据),根据邻接矩阵
bangerlee
·
2019-04-16 11:00
算法与
数据结构基础
- 位运算(Bit Manipulation)
位运算基础说到与(&)、或(|)、非(~)、异或(^)、位移等位运算,就得说到位运算的各种奇淫巧技,下面分运算符说明。1.与(&)计算式a&b,a、b各位中同为1才为1,否则为0,a&1和a%2效果一样;来看两道典型的题目,第1道计算整数二进制中1的位数://191.Numberof1BitsinthammingWeight(uint32_tn){intres=0;while(n!=0){n=n&
bangerlee
·
2019-04-15 20:00
算法与
数据结构基础
- 回溯(Backtracking)
回溯基础先看一个使用回溯方法求集合子集的例子(78.Subsets),以下代码基本说明了回溯使用的基本框架://78.SubsetsclassSolution{private:voidbacktrack(vector>&res,vector&tmp,vector&nums,intstart){res.push_back(tmp);//满足一定条件下将当前数据加入结果集for(inti=start;
bangerlee
·
2019-04-13 21:00
算法与
数据结构基础
- 折半查找(Binary Search)
BinarySearch基础应用于已排序的数据查找其中特定值,是折半查找最常的应用场景。相比线性查找(LinearSearch),其时间复杂度减少到O(lgn)。算法基本框架如下://704.BinarySearchintsearch(vector&nums,inttarget){//nums为已排序数组inti=0,j=nums.size()-1;while(itarget)j=mid-1;el
bangerlee
·
2019-04-12 11:00
vcglib使用,转载的
Mesh(triangularmesh,tetrahedralmesh,三角网格或四面体网格)数据结构的定义,该数据结构支持对Mesh数据的快速访问(拓扑信息、空间查询等)以及高效执行网格上算法;在Mesh
数据结构基础
上
gaoenyang760525
·
2019-04-06 10:00
工业三维视觉
数据结构基础
学习之线性表
线性表的学习学习目标线性表的定义线性表的存储方式和表达方式基本实现基本操作实现双向链表插入和删除实现循环单链表和循环双向链表的结构特点1.线性表:定义:零个或多个数据元素所构成的有限序列存储方式:顺序存储结构和链式存储结构抽象数据类型描述publicinterfaceIList{voidclear();//线性表清空操作booleanisEmpty();//判空intsize();//长度Eget
JiaJianHuang
·
2019-04-05 20:57
python
数据结构基础
一:线性表单链表的实现
单链表的实现一、前提二、总体工作三、实现1.定义链表结点类2.测试结点类对象的使用3.上面测试原理图(根据赋值原理)4.定义单链表对象类(包含一个异常类)5.测试单链表对象类一、前提需要理解python的类、实例、赋值原理(其实就是地址的引用)等概念二、总体工作先定义一个链表结点类(LNode),用于生成链表结点。然后定义一个单链表对象类(LList),用于存储链表结点、操作结点数据。三、实现1.
http://Chenftli.com
·
2019-03-25 15:50
python
数据结构
数据结构基础
(链表)
链表的定义:typedefintDataType;typedefstructListNode{Datatypedata;structListNode*next;}ListNode;递归实现链表的逆序打印voidReverse(ListNode*pList)//递归实现逆序打印{if(pList==NUll){return;}elseif(pList!=NULL){Reverse(pList->ne
Frank_sample
·
2019-03-21 19:48
C语言基础
算法与数据结构(CHAPTER 1)
数据结构基础
数据类型结构型变量中所装的是数据元素的内容,如int、double...复杂型:数组二维数组可以看成一维数组里面的一维数组结构体用户自定义数组类型例子:二维数组b[3][3],包含三个元素,
好奇的小菜狗
·
2019-03-19 17:40
【Java基础面试】这几道Java集合框架面试题在面试中几乎必问
Arraylist与LinkedList异同补充:
数据结构基础
之双向链表ArrayList与Vector区别HashMap的底层实现JDK1.8之前JDK1.8之后HashMap和Hashtable的区别
StromRui
·
2019-03-15 08:59
【JAVA基础面试】
数据结构基础
知识
引入作为科班毕业的计算机专业的学生,对于数据结构这么课程可谓是又恨又爱,恨是它很难,爱是它很重要(无论是考研还是找工作)。所以今天就是我数据结构这块知识的开篇。开篇博客我将简单介绍数据结构的基础概念、逻辑结构和物理结构的关系基础知识数据:数据是对世界上客观存在的物体的数字化表示,数字化体现在它能被计算机处理数据元素:数据元素是对世界上某一类客观存在的物体的总称,可以理解为数据由许多不同的数据元素组
csdnadvancer
·
2019-02-24 23:30
数据结构
数据结构基础
知识
引入作为科班毕业的计算机专业的学生,对于数据结构这么课程可谓是又恨又爱,恨是它很难,爱是它很重要(无论是考研还是找工作)。所以今天就是我数据结构这块知识的开篇。开篇博客我将简单介绍数据结构的基础概念、逻辑结构和物理结构的关系基础知识数据:数据是对世界上客观存在的物体的数字化表示,数字化体现在它能被计算机处理数据元素:数据元素是对世界上某一类客观存在的物体的总称,可以理解为数据由许多不同的数据元素组
csdnadvancer
·
2019-02-24 23:30
数据结构
数据结构基础
27:DFS和BFS算法总结
前言:图的遍历算法DFS和BFS是许多图算法的基础,所以有必要单独拎出来总结一下。DFS和BFS主要是运用于对于图和树的搜索,很多问题模型都是可以建模变成一个图或者树的,所以差不多不少问题都会涉及到这两个。比如求二叉树深度,可以是递归的方法,属于DFS(深度优先搜索);另一种方法是按照层次遍历,属于BFS(广度优先搜索),想看代码的可以看《剑指Offer(三十八):二叉树的深度》。再比如寻找一条路
csdn2497242041
·
2019-02-16 05:04
数据结构与算法
数据结构基础
27:DFS和BFS算法总结
前言:图的遍历算法DFS和BFS是许多图算法的基础,所以有必要单独拎出来总结一下。DFS和BFS主要是运用于对于图和树的搜索,很多问题模型都是可以建模变成一个图或者树的,所以差不多不少问题都会涉及到这两个。比如求二叉树深度,可以是递归的方法,属于DFS(深度优先搜索);另一种方法是按照层次遍历,属于BFS(广度优先搜索),想看代码的可以看《剑指Offer(三十八):二叉树的深度》。再比如寻找一条路
csdn2497242041
·
2019-02-16 05:04
数据结构与算法
数据结构基础
26:图
前言:线性表和树两类数据结构,线性表中的元素是“一对一”的关系,树中的元素是“一对多”的关系。而图是一种比线性表和树更复杂的数据结构,在图中,结点之间的关系是任意的,任意两个数据元素之间都可能相关,图是一种“多对多”的数据结构。在计算机科学中,图是最灵活的数据结构之一,很多问题都可以使用图模型进行建模求解。例如:生态环境中不同物种的相互竞争、人与人之间的社交与关系网络、化学上用图区分结构不同但分子
csdn2497242041
·
2019-02-15 05:23
数据结构与算法
数据结构基础
21:堆
前言:堆是实现优先级队列效率很高的数据结构,堆其实是一颗特殊的完全二叉树,用下标从1开始的数组表示最有效率。在JVM中,堆是用来存储对象实例以及数组值的区域,可以认为Java中所有通过new创建的对象的内存都在此分配。堆是所有线程共享的,因此在其上进行对象内存的分配均需要进行加锁,这也导致new对象的开销比较大。栈:内存空间小一些,栈的内存要远远小于堆内存,如果你使用递归的话,那么你的栈很快就会充
csdn2497242041
·
2019-02-12 01:59
数据结构与算法
数据结构基础
20:字典树的应用场景
(1)字符串检索事先将已知的一些字符串(字典)的有关信息保存到trie树里,查找另外一些未知字符串是否出现过或者出现频率。举例:1.给出N个单词组成的熟词表,以及一篇全用小写英文书写的文章,请你按最早出现的顺序写出所有不在熟词表中的生词。2.给出一个词典,其中的单词为不良单词。单词均为小写字母。再给出一段文本,文本的每一行也由小写字母构成。判断文本中是否含有任何不良单词。例如,若rob是不良单词,
csdn2497242041
·
2019-02-03 01:48
数据结构与算法
数据结构基础
19:字典树
前言:字典树(Trie)可以保存一些字符串->值的对应关系。基本上,它跟Java的HashMap功能相同,都是key-value映射,只不过Trie的key只能是字符串。Trie的强大之处就在于它的时间复杂度。它的插入和查询时间复杂度都为O(k),其中k为key的长度,与Trie中保存了多少个元素无关。Hash表号称是O(1)的,但在计算hash的时候就肯定会是O(k),而且还有碰撞之类的问题。一
csdn2497242041
·
2019-02-03 01:56
数据结构与算法
上一页
11
12
13
14
15
16
17
18
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他