数据结构与算法
海阔天空.
前端工程师
展开
-
算法题记录
1.给定一个整数数组nums和一个目标值target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。//法一 时间复杂度O(n^2) 空间复杂度O(n)var twoSum = function(nums, target) { for(var i=0; i<nums.l...原创 2019-05-04 14:58:33 · 97 阅读 · 0 评论 -
栈和队列
一、栈:栈是一种遵从后进先出(LIFO)原则的有序集合。新添加或待删除的元素都保存在栈的同一端,称作栈顶,另一端就叫栈底。一个栈数据结构,需要有一些方法:push(element(s)):添加一个(或几个)新元素到栈顶。pop():移除栈顶的元素,同时返回被移除的元素。peek():返回栈顶的元素,不对栈做任何修改(该方法不会移除栈顶的元素,仅仅返回它)。isEmpty():如果栈里没...原创 2019-09-06 17:50:29 · 261 阅读 · 0 评论 -
链表
一、链表要存储多个元素,数组(或列表)可能是最常用的数据结构。这种数据结构非常方便,提供了一个便利的[]语法来访问其元素。然而,这种数据结构有一个缺点:(在大多数语言中)数组的大小是固定的,从数组的起点或中间插入或移除项的成本很高,因为需要移动元素。(尽管我们已经学过,JavaScript 有来自 Array 类的方法可以帮我们做这些事,但背后的情况同样如此。)链表存储有序的元素集合,但不同...原创 2019-09-08 15:25:01 · 152 阅读 · 0 评论 -
树
本内容整理自《学习JavaScript数据结构与算法》,在这主要总结了树相关的一些概念和二叉搜索树的实现。一、树数据结构相关的概念树是一种分层数据的抽象模型。现实生活中最常见的树的例子是家谱,或是公司的组织架构图,如下图所示。一个树结构包含一系列存在父子关系的节点。每个节点都有一个父节点(除了顶部的第一个节点)以及零个或多个子节点:位于树顶部的节点叫作根节点(11)。它没有父...原创 2019-09-11 22:57:02 · 328 阅读 · 0 评论 -
图
一、概念图是网络结构的抽象模型,是一组由边连接的节点(或顶点)。由一条边连接在一起的顶点称为相邻顶点。一个顶点的度是其相邻顶点的数量。路径是顶点 v1, v2, …, vk的一个连续序列,其中 vi和 vi+1是相邻的。简单路径要求不包含重复的顶点,如果图中不存在环(起点和终点相同),则称该图是无环的。如果图中每两个顶点间都存在路径,则该图是连通的。图可以是无向的(边没有方向)或是有向...原创 2019-09-19 18:31:27 · 168 阅读 · 0 评论 -
排序和搜索算法
一、排序算法默认比较函数const compareFunc = ( a, b) => a-b;1)冒泡排序 //1.冒泡排序 两两比较 大的往后挪 const bubbleSort = (array, compareFunc) => { //外层循环控制进行多少轮排序 内层循环把当前项和下一项做比较 for (let i= 0; i<ar...原创 2019-09-20 19:21:18 · 228 阅读 · 0 评论