
数据结构与算法
杏子 |职业生涯规划师
1、职业生涯规划师;
2、1000+小时职业辅导咨询时长(职业转型、简历诊断/优化、1v1职业规划咨询、求职全流程陪跑);
3、8年前端开发经验,前科大讯飞研发负责人;
4、著有书籍《Web全栈项目开发入门与实战》。
展开
-
算法 - 约瑟夫环(隔数删除)
从一个数列 a ( a[100] 存 0-99 )中每相隔 2 个数删除一个数。到末尾时循环至开头继续。求最后被删除的那个数。原创 2020-04-09 16:44:41 · 1029 阅读 · 1 评论 -
算法 - 斐波那契数列
在一个斐波那契数列 [1,1,2,3,5,8,13,21,34...] 中。输入索引值 count,求对应的返回值result。比如输入 0,返回1;输入 4,返回 5;输入 5,返回 8。原创 2020-04-09 14:33:40 · 667 阅读 · 0 评论 -
算法 - 求二叉树的最近公共祖先
给定一个二叉树,找到该树中两个指定节点的最近公共祖先(一个节点也可以是它自己的祖先)。所有节点的值都是唯一的。原创 2019-12-30 22:33:37 · 572 阅读 · 0 评论 -
算法 - 求二叉搜索树的最近公共祖先
给定一个二叉搜索树,找到该树中两个指定节点的最近公共祖先(一个节点也可以是它自己的祖先)。所有节点的值都是唯一的。原创 2019-12-30 17:38:11 · 375 阅读 · 0 评论 -
算法 - 求最长升序子序列长度
求一个数组中最长升序子序列的长度。如 [8,4,7,5,1,3,6,2]; 升序子序列有 [4,7],[4,5,6],[1,3,6],最长升序子序列的长度为 3。原创 2019-12-27 17:24:22 · 2269 阅读 · 2 评论 -
算法 - 分割等和子集(动态规划)
动态规划是把复杂的问题拆分成一个个小问题,然后把上个问题的解作为条件来解决下一个问题,以此类推。原创 2019-12-24 15:45:26 · 2805 阅读 · 0 评论 -
面试题(算法题) - 百钱买百鸡
条件:现有 100 钱,一共要买公鸡、母鸡、小鸡三种鸡,已知公鸡 5 钱一只,母鸡 3 钱一只,1 钱可以买三只小鸡。要求:公鸡、母鸡、小鸡都要有,一共买 100 只鸡。有哪几种买法,公鸡、母鸡、小鸡分别是多少只?原创 2019-12-22 19:45:59 · 6044 阅读 · 3 评论 -
面试题(算法题)- 找出最快的4匹马
现有 64 匹马,8 个赛道,在不计时的情况下,怎么(或者说需要比多少场次)才能找出最快的4匹马?原创 2019-12-22 18:41:41 · 1386 阅读 · 1 评论 -
算法 - 归并排序
归并排序采用的算法是分治法。分治法指的是分而治之,把大的问题分解成一个个小问题来解决。这里结合二分查找法来实现一个归并排序。原创 2019-12-20 22:02:41 · 281 阅读 · 0 评论 -
简述时间复杂度
时间复杂度并不是指程序的运行时间,而是指程序的运行次数。当有多种算法去解决同一个问题时,就可以用时间复杂度去衡量每个算法的效率,算法中基本语句重复执行的次数是问题规模 n 的某个函数 f(n),通常表示为 T(n) = O(f(n))。原创 2019-11-30 10:32:53 · 1023 阅读 · 1 评论 -
数据结构之图
图是由它的节点和连线组成,根据是否有向性可以分为有向图和无向图。节点与节点之间由有向的线段连接叫做有向图,无有向的线段连接叫做无向图。无向图中每个节点的连线可以理解为是有向图中节点的来去两个连线。原创 2019-09-30 19:16:50 · 627 阅读 · 0 评论 -
数据结构之树
数据结构之树一、树的概念二、树的方法三、树的实现四、树的应用一、树的概念二、树的方法三、树的实现四、树的应用原创 2019-09-30 15:44:36 · 989 阅读 · 0 评论 -
数据结构之链表
链表是物理存储单元上非连续,非顺序的存储结构,链表的逻辑次序根据链表的元素指针来实现。链表是由一系列不同的结点组成。每个节点由数据与指向下一个节点的指针组成。原创 2019-09-10 16:17:10 · 191 阅读 · 0 评论 -
数据结构之栈
栈(Stack),又名堆栈,是一种特殊的线性结构表。只能在表尾进行插入和删除操作。在栈中,插入一个元素叫入栈、进栈或压栈,实质是把元素放在栈顶的上面,成为更的栈顶。删除一个元素叫出栈或退栈,实质是将栈顶元素删除,下一个元素称为新的栈顶。因此栈是后进先出LIFO,last in first out。生活中羽毛球的摆放形式,电梯进出形式都是栈的应用。原创 2019-09-04 07:32:00 · 724 阅读 · 0 评论 -
数据结构之队列
队列(Queue)是一种特殊的线性结构表,仅允许在表头进行删除操作,表尾进行插入操作。队列的数据元素称为队列元素,插入一个队列元素叫入队,删除一个队列元素叫出队。由于只能表头删除,表尾插入,所以队列是先进先出,即 FIFO(first in first out)。原创 2019-09-03 23:06:39 · 349 阅读 · 0 评论 -
数据结构
一、概念数据结构是由某一数据对象及组成该对象的数据元素之间的关系组成。二、分类数据结构按照不同维度分为逻辑结构和存储结构。逻辑数据结构表示数据之间的逻辑关系,存储数据结构表示逻辑数据结构在计算机中的存储方式。根据不同的表示方法(顺序映像和非顺序映像)存储结构又分为顺序存储结构和链式存储结构。一个逻辑数据结构有多种存储数据结构,不同的存储数据结构有不同的效率。算法的设计取决于逻辑数据结构...原创 2019-04-30 23:24:58 · 311 阅读 · 0 评论 -
算法简述
一、概念算法其实就是计算机解决某个问题的指令,算法的效率可以通过时间复杂度(执行算法所需要的时间)和空间复杂度(执行算法所需要消耗的内存空间)来评定。二、特点1.有输入:算法一定有 0 个或多个输入。0个表示算法本身有初始状态,而输入表示的就是算法的初始情况。2.有输出:算法一定有一个或多个输出。有了输入之后,经过运算处理必然会有输出项,否则算法就没有意义。3.确定性:算法的每...原创 2019-05-04 19:48:34 · 656 阅读 · 0 评论 -
逆波兰表达式
今天在学习数据结构-栈的时候接触到一个有意思的表达式,逆波兰表达式。作为一个文科生,一听到这数学专业名词就有些瑟瑟发抖,本着攻克晦涩知识点的两个要领(一、耐心;二、由难分解成简)硬着头皮看了几次介绍和相关案例,算是有了一些自己的理解,感觉还挺有趣儿,分享给大家。原创 2019-06-10 13:18:15 · 21386 阅读 · 2 评论