首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
算法研习社
韦林
创建于2021-10-19
订阅专栏
练习最基本和常用算法
等 6 人订阅
共18篇文章
创建于2021-10-19
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
研习算法(续二)-链表实现(javascript版)
链表简介 多个元素组成的列表 元素存储不连续,用next指针连在一起 双向链表 追加 (push) - O(1) 索引 访问/修改(A[idx]=...)- O(n) 插入(insert) - O(1
研习算法(续四)-队列实现(javascript版)
队列简介 一个先进先出的数据结构、保证有序 javascript没有队列,可以用array数据结构模拟队列的功能 队列实现 size: 队列的大小 max: 队列的最大容量 p: 入队指针 q: 出队
研习算法(续三)-栈实现(javascript版)
栈简介 一个后进先出的数据结构 javascript没有栈,可以用array数据结构模拟栈的功能 栈实现 size: 栈的大小 max: 栈的最大容量 sp: 栈指针 Stack Overflow:
研习算法(续一)-数组(javascript版)
数组简介 数组(Array)是有序的元素序列 若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。 数组操作 追加(pus
研习算法-总结
数据结构 栈、队列、链表、集合、字典、树、图、堆 算法 链表/树/图的遍历、数组的排序和搜索... 算法设计思想 分而治之、动态规划、贪心、回溯 重点难点 数据结构: 所有数据结构都很重要,跟前端最相
研习算法第十四站-回溯算法(javascript版)
回溯算法 回溯算法是算法设计中的方法 回溯算法是一种渐进式寻找并构建问题解决方式的策略 回溯算法会先从一个可能的动作开始解决问题,如果不行,就回溯并选择另一个动作,知道将问题解决 使用场景 有很多路
研习算法第十三站-贪心算法(javascript版)
贪心算法 贪心算法是算法设计中的一种方法 期盼通过每个阶段的局部最优解选择,从而达到最全局的最优 结果不一定是最优的 使用场景 零钱兑换 可以得到最优解 得不到最优解 leetcode-cn.com
研习算法第十二站-动态规划(javascript版)
动态规划 动态规划是算法设计中的一种方法 它将一个问题分解为相互重叠的子问题,通过反复求解子问题,来解决原问题 使用场景 斐波那契数列 定义子问题: F(n) = F(N-1) + F(N-2) 反复
研习算法第十一站-分而治之(javascript版)
分而治之 分而治之是算法设计中的一种方法 它将一个问题分成多个和原问题相似的小问题,递归解决小问题,再将结果合并以解决原来的问题 使用场景 场景一 :归并排序 分: 把数组从中间一分为二 解: 递归的
研习算法第七站-图(javascript版)
图简介 图是网络结构的抽象模型,是一组由边连接的节点 图可以表示任何二元关系,例如: 道路、航班 js中没有图,可以用Object和Array构建图 图的表示法:邻接矩阵、邻接表、关联矩阵... 邻接
研习算法第八站-堆(javascript版)
对简介 堆是一个特殊的完全二叉树 所有的节点都大于(最大堆)或 小于等于(最小堆)它的子节点 js中通常用数组表示堆 堆表示法和堆特点 js中通常用数组表示堆 左侧子节点的位置(下标)是 2 * in
研习算法第九站-排序算法(javascript版)
排序算法 冒泡排序 选择排序 插入排序 归并排序 快速排序 ... 排序动画演示 https://visualgo.net/zh/sorting 冒泡排序思路 比较所有相邻元素,如果第一个比第二个大,
研习算法第六站-树(javascript版)
树简介 一种分层数据的抽象模型 前端常见的树包括:DOM树、级联选择、树控件 js中没有树,使用Object和Array模拟树 树的常用操作: 深度/广度优先遍历、先中后序遍历(二叉树) 树的深度和广
研习算法第五站-字典(javascript版)
字典简介 与集合类型,字典也是一种存储唯一值的数据结构,但它是以键值对的形式存储的 ES6 中有字典,名为Map 常用操作:键值对的增删改查 leetcode-cn.com 算法题实战 完整题目请打开
研习算法第四站-集合(javascript版)
集合简介 一种无序且唯一的数据结构。 ES6 中有集合,名为Set 常用操作:去重、判断元素是否在集合中、求交集、求差集... leetcode-cn.com 算法题实战 完整题目请打开 leetco
研习算法第三站-链表(javascript版)
链表简介 多个元素组成的列表 元素存储不连续,用next指针连在一起 javascript没有链表,可以用Object数据结构模拟链表的功能 数组 VS 链表 数组: 增删非首尾元素时往往需要移动其他
研习算法第一站-栈(javascript版)
栈简介 一个后进先出的数据结构 javascript没有栈,可以用array数据结构模拟栈的功能 使用场景 后进先出 例如: 十进制转二进制、判断有效的括号、函数调用堆栈... leetcode-cn
研习算法第二站-队列(javascript版)
队列简介 一个先进先出的数据结构、保证有序 javascript没有队列,可以用array数据结构模拟队列的功能 使用场景 需要先进先出的场景 例如:js异步中的任务队列、计算最近请求次数 leetc