
数据结构与算法
文章平均质量分 81
数据结构与算法
小白目
这个作者很懒,什么都没留下…
展开
-
复杂数组去重的常用方法
法1: 利用 Setfunction uniq(arry) { return [...new Set(arry)]}法2: 利用 indexOffunction uniq(arry) { var result = []; for (var i = 0; i < arry.length; i++) { if (result.indexOf(arry[i]) === -1) { //如 result 中没有 arry[i],原创 2022-03-21 16:47:38 · 1495 阅读 · 0 评论 -
正则看这篇就够了
正则符号:常用正则表达式:QQ号 [1-9][0-9]{4,} 身份证号 ^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$ 邮箱 [\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])? 日期 ([0-9]{3}[1-9]|[0-9]{2}[1-9][0原创 2022-03-20 15:00:30 · 119 阅读 · 0 评论 -
leetcode专题训练笔记
一、动态规划专题①.记忆化递归“搜索”(自顶向下):用一个数组存放(递归子树的)中间结果,并且在下次递归前判断该结果是否计算过,若计算过直接返回,否则就递归,从而实现剪枝的效果,即空间换时间。②动态规划法(自底向上):找规律,求子问题的解从而得到最终解,写动态转移方程。(找不到动态转移方程就先尝试记忆化弄清问题结构,再反推自底向上)。利用递推关系用“填表格”的方式顺序计算。每个 dp 项的值其实等于一个递归子调用的结果(递归子问题的解)。 动态规划 “三板斧” 分治,找到最优子结...原创 2022-03-09 10:44:56 · 270 阅读 · 0 评论 -
堆排序及应用举例
1.什么是堆:堆是一棵完全二叉树的数据结构,可以分为大根堆和小根堆。大根堆就是树的每一个父节点都大于孩子节点,小根堆则相反。注意:若将树按数组形式存放,对于索引为 i 的节点则有以下性质:① 父结点索引:(i-1)/2 ② 左孩子索引:2*i+1 ③右孩子索引:2*i+2从而对于大顶堆:arr[i] >= arr[2i + 1] && arr[i] >= arr[2i + 2]2.堆排序思想:第一步建堆,第二步排序。算法......原创 2022-03-04 22:18:26 · 933 阅读 · 0 评论 -
六大排序算法的原理与实现(js)
常见排序算法原理与实现 超清楚原创 2022-01-10 14:45:59 · 286 阅读 · 0 评论 -
数据结构与算法(js)
数据结构概述:在计算机中存储和组织数据的方式。算法概述:解决方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。常用的数据结构: 线性结构(数组、链表、栈、队列和哈希表),非线性结构(树、图),抽象数据结构(集合、字典可看这一篇文章https://blog.youkuaiyun.com/qq_37974755/article/details/122115209?spm=1001.2014.3001.5501)。这些数据结构均有许多变种,本文主要介绍基础..原创 2022-01-09 22:33:43 · 1367 阅读 · 0 评论 -
最新剑指offer刷题笔记js(含新旧俩版所有题)
1.求平方根思路:x的平方根肯定是1~x之间的数,可用二分法在此区间取值,若中间值的平方大于x,则右端减一,否则左端加一。2.二维数组中的查找思路:由于Array的元素无论横向还是纵向都是增大的,可从左下角开始查找,如果大于target则可以像上搜索,若小则向右;同理从右上角开始也可。function Find(target, array){ // write code here let find =false, i=array.length-原创 2022-01-10 22:38:01 · 547 阅读 · 0 评论