自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

CaseyWei

不积跬步,无以至千里;不积小流,无以成江海。

  • 博客(588)
  • 论坛 (1)
  • 收藏
  • 关注

原创 347. 前 K 个高频元素(JavaScript版)

题目:给定一个非空的整数数组,返回其中出现频率前k高的元素。示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]示例 2:输入: nums = [1], k = 1输出: [1]提示:你可以假设给定的k总是合理的,且 1 ≤ k ≤ 数组中不相同的元素的个数。你的算法的时间复杂度必须优于 O(n log n) ,n是数组的大小。题目数据保证答案唯一,换句话说,数组中前 k 个高频元素的集合是唯一的。你可以按任意顺...

2020-11-27 09:12:26 13

原创 215. 数组中的第K个最大元素(JavaScript版)

题目:在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4说明:你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。解题:class MinHeap{ constructor() { this.heap = [] } //.

2020-11-27 08:13:42 16

原创 JavaScript 实现:最小堆类

class MinHeap{ constructor() { this.heap = [] } // 替换两个节点值 swap(i1,i2){ const temp = this.heap[i1]; this.heap[i1] = this.heap[i2]; this.heap[i2] = temp; } // 获取父节点 getParentIndex() { return (i -1) >> 1; //求除2的商 }.

2020-11-26 10:10:43 20 1

原创 数据结构——堆

堆的:1.堆是一种特殊的完全二叉树2.所有的节点都大于等于(最大堆)或小于等于(最小堆)它的子节点。最大堆:图例:最小堆:图例:js中的堆:1.js中通常用数组表示堆。2.左侧子节点的位置是2*index+1。3.右侧子节点的位置是2*index+2。4.父节点位置是(index-1)/2图例:堆的应用:1.堆能高效、快速地找出最大值和最小值,时间复杂度:0(1)。2.找出第k个最大(小)元素。第k个最大(小)元素解题思路:.

2020-11-26 08:48:29 86 1

原创 (转)图的表示法与常用的转化算法

《图的表示方法》(i)邻接矩阵表示法,如图:  也就是说,如果两节点之间有一条弧,则邻接矩阵中对应的元素为1;否则为0。可以看出,这种表示法非常简单、直接。但是,在邻接矩阵的所有 个元素中,只有 个为非零元。如果网络比较稀疏,这种表示法浪费大量的存储空间,从而增加了在网络中查找弧的时间。  同样,对于网络中的权,也可以用类似邻接矩阵的 矩阵表示。只是此时一条弧所对应的元素不再是1,而是相应的权而已。如果网络中每条弧赋有多种权,则可以用多个矩阵表示这些权。(ii)关联矩阵表示法 .

2020-11-25 11:23:06 1

原创 65. 有效数字(JavaScript版)

题目:验证给定的字符串是否可以解释为十进制数字。例如:"0"=>true" 0.1 "=>true"abc"=>false"1 a"=>false"2e10"=>true" -90e3"=>true" 1e"=>false"e3"=>false" 6e-1"=>true" 99e2.5"=>false"53.5e93"=>true" --6 "=&gt...

2020-11-24 09:20:51 34 1

原创 图的深度优先遍历和广度优先遍历(JavaScript版)

1.深度优先遍历:算法口诀:1.访问根节点。2.对根节点的没访问过的相邻节点挨个进行深度优先遍历。实例:const graph = { 0: [1,2], 1: [2], 2:[0,3], 3: [3]}const visited = new Set();const dfs = (n) => { console.log(n); visited.add(n); graph[n].forEach(c=> { if(!visited

2020-11-24 09:03:32 16

原创 遍历 JSON 的所有节点值

const json = { a: { b: { c: 1 } }, d: [1, 2]}const dfs = (n, path) => { console.log(n, path); Object.keys(n).forEach(k => { dfs(n[k], path.concat(k)); })}dfs(json, []);

2020-11-23 09:59:10 24

原创 112. 路径总和(JavaScript版)

题目:给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。说明:叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ \ 7 2 1返回 true, 因为存...

2020-11-20 08:46:41 13

原创 102. 二叉树的层序遍历(JavaScript版)

题目:给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。示例:二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [9,20], [15,7]]解题:var levelOrder = function (root) { if(!root) return []; const q =[root];...

2020-11-19 20:25:01 11

原创 111. 二叉树的最小深度(JavaScript版)

题目:给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明:叶子节点是指没有子节点的节点。示例 1:输入:root = [3,9,20,null,null,15,7]输出:2示例 2:输入:root = [2,null,3,null,4,null,5,null,6]输出:5提示:树中节点数的范围在[0, 105]内 -1000 <= Node.val <= 1000解题:var ...

2020-11-18 11:39:52 16

原创 二叉树的最大深度(JavaScript版)

题目:给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明:叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度3 。解题:var maxDepth = function (root) { let res = 0; const dfs = (n, l) => { if (!...

2020-11-16 20:18:36 20

原创 elementUI监听表格展开事件

在table type="expand"打开时执行一个请求,并处理逻辑,在官网中发现一个方法可以实现HTML<el-table style="width:100%;margin-bottom: 15px;" :data="Tabledata.filter(data => !search || data.fault_hop.toLowerCase().includes(search.toLowerCase())||data.network_level.toLowerCas

2020-11-16 17:26:48 54

原创 二叉树的先中后序遍历(JavaScript非递归版)

1.先序遍历:const preorder = (root) => { if (!root) { return; } const stack = [root]; while (stack.length) { const n = stack.pop(); console.log(n.val); if (n.right) stack.push(n.right); if (n.left) stack.push(n.left); }}preorde

2020-11-16 08:56:12 12

原创 (转)element 的dialog嵌套问题,第二次弹出的会被遮住的解决办法

今日在做项目的时候,遇到一个小问题,在同一页面,使用Element的弹框组件,却发现第二次弹框得鼠标点击之后才会显示变亮,似乎被遮住了!(如图效果);才发现,element 的dialog嵌套问题,之所以第二次弹出的会被遮住,是因为没有给定 append-to-body正常情况下,我们不建议使用嵌套的 Dialog,如果需要在页面上同时显示多个 Dialog,可以将它们平级放置。对于确实需要嵌套 Dialog 的场景,我们提供了append-to-body属性。将内层 Dialog 的该属性.

2020-11-15 18:01:16 33

原创 二叉树的先中后序遍历(JavaScript版)

1.先序遍历:先序遍历算法口诀:1.访问根节点2.对根节点的左子树进行先序遍历3.对根节点的右子树进行先序遍历实例:const bt = { val: 1, left: { val: 2, left: { val: 4, left: null, right: null }, right: { val: 5, left: null, right: { v

2020-11-13 18:31:35 23

原创 树的深度优先遍历和广度优先遍历(JavaScript版)

1.深度优先遍历:深度优先遍历:尽可能深的搜索树的分支。例如:算法口诀:1.访问根节点。2.对根节点的children挨个进行深度优先遍历。实例:2.广度优先遍历:广度优先遍历:先访问离根节点最近的节点。例如:...

2020-11-13 17:51:51 31

原创 76. 最小覆盖子串(JavaScript版)

题目:给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 "" 。注意:如果 s 中存在这样的子串,我们保证它是唯一的答案。示例 1:输入:s = "ADOBECODEBANC", t = "ABC"输出:"BANC"示例 2:输入:s = "a", t = "a"输出:"a"提示:1 <= s.length, t.length <= 105s 和 t 由英文字..

2020-11-12 20:10:18 23

原创 3. 无重复字符的最长子串(JavaScript版)

解题:给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例1:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是"wke",所以其长度为 3。 请注意,你的答案必须是 子串 的长度,"pwke"...

2020-11-12 19:51:04 12

原创 1. 两数之和(JavaScript版)

题目:给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]解题:var twoSum = function(nums, target) { const map = ...

2020-11-11 09:36:44 148 1

原创 349. 两个数组的交集(JavaScript版)

题目:给定两个数组,编写一个函数来计算它们的交集。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[9,4]说明:输出结果中的每个元素一定是唯一的。我们可以不考虑输出结果的顺序。解题:var intersection = function(nums1, nums2) { return [...new Set(nu..

2020-11-11 09:11:55 13

原创 141. 环形链表(JavaScript版)

题目:给定一个链表,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。如果链表中存在环,则返回 true 。 否则,返回 false 。进阶:你能用 O(1)(即,常量)内存解决此问题吗?示例 1:输入:head..

2020-11-10 10:00:17 21

原创 83. 删除排序链表中的重复元素(JavaScript版)

题目:给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例1:输入: 1->1->2输出: 1->2示例2:输入: 1->1->2->3->3输出: 1->2->3解题:var deleteDuplicates = function(head) { let p = head; while (p && p.next) { if(p.val === p.next..

2020-11-10 09:29:27 44

原创 2. 两数相加(JavaScript版)

题目:给出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807解题:var addTwoNumbers =...

2020-11-10 09:09:23 46

原创 206.反转链表(JavaScript版)

题目:定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL限制:0 <= 节点个数 <= 5000解题:var reverseList = function(head) { let p1 =head; let p2 = null; while(p1) {..

2020-11-10 08:41:47 14

原创 剑指 Offer 18. 删除链表的节点(JavaScript版)

给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。题目:注意:此题对比原题有改动示例 1:输入: head = [4,5,1,9], val = 5输出: [4,1,9]解释: 给定你链表中值为5的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.示例 2:输入: head = [4,5,1,9], val = 1输出: [4,5,9]解释: 给定你链表中值为1的第三个节点,那么在调用...

2020-11-09 08:48:50 39

原创 933. 最近的请求次数(JavaScript版)

题:写一个RecentCounter类来计算特定时间范围内最近的请求。请你实现 RecentCounter 类:RecentCounter() 初始化计数器,请求数为 0 。int ping(int t) 在时间 t 添加一个新请求,其中 t 表示以毫秒为单位的某个时间,并返回过去 3000 毫秒内发生的所有请求数(包括新请求)。确切地说,返回在 [t-3000, t] 内发生的请求数。保证每次对 ping 的调用都使用比之前更大的 t 值。示例 1:输入:["Rece...

2020-11-09 08:41:21 38

原创 20. 有效的括号(JavaScript版)

题目:给定一个只包括 '(',')','{','}','[',']'的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例2:输入: "()[]{}"输出: true示例3:输入: "(]"输出: false示例4:输入: "([)]"输出: false示例5:输入: "{[]}"输出: true解:...

2020-11-07 15:18:20 30

原创 (转)Mongoose之中间件(Middleware)

中间件 前置(pre)中间件 后置(post)中间件 异步Post钩子 保存/验证钩子 命名冲突 关于findAndUpdate()和Query中间件的说明 错误处理中间件 同步钩子1. 中间件中间件也称为“前置”(pre)和“后置”(post)钩子,是在执行异步功能期间传递控制的函数。中间件在模式(Schema)级别指定,对编写插件很有用。Mongoose中有4种类型的中间件:文档(document)中间件,模型(model)中间件,聚合(aggregate)中间件和查询...

2020-11-06 09:14:13 14

原创 (转)linux分区满了,如何进行扩容

图片中可以看到挂载点“/”的利用率移到100%,空间不够,所以要对其进行分区。1. 先进入虚拟机设置里增大磁盘空间注意:将25改成50,以扩大空间。这里一定要写比25大的数,因为他是“增加到”50GB,而不是“增加了25GB”2. 下图可以看到,硬盘空间增大为53.7GB,在设备那里可以看到有两个分区,sda1跟sda2(请忽略sda3)。接下来增加一个分区。键入命令:fdish/dev/sda 键入:m(获取帮助) 键入:...

2020-11-05 07:56:51 22

原创 (转)Linux——pv、vg和lv的概念

1. 什么是LVM:LVM是 Logical Volume Manager,逻辑的概念,Linux用户安装Linux操作系统时遇到的一个常见的难以决定的问题就是如何正确地评估各分区大小,以分配合适的硬盘空间。普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻辑分区存放不下某个文件时,这个文件因为受上层文件系统的限制,也不能跨越多个分区来存放,所以也不能同时放到别的磁盘上。而遇到出现某个分区空间耗尽时,解决的方法通常是使用符号链接,或者使用调整分区大小的工具,但这只是暂时解决办法,没有从

2020-11-05 07:52:34 22

原创 (转)serverless

前言最近关于 Serverless 的讨论越来越多。看似与前端关系不大的 Serverless,其实早已和前端有了颇深渊源,并且将掀起新的前端技术变革。此次分享根据个人理解和总结,从前端开发模式在serverless的演进、Serverless 常见服务商提供的解决方案以及 基于Serverless 的前端开发模式等方面,与大家探讨 Serverless 中的前端开发模式。一、前端开发模式的演进image.png首先回顾一下前端开发模式的演进,我觉得主要有四个阶段。。1、基于模板渲染

2020-11-04 19:46:40 41 1

原创 (转)windows中jenkins关联gitLab进行vue项目自动部署打包

一、首先安装jenkins和gitLab(可自行百度查看如何安装jenkins和gitLab),并在jenkins所在服务器安装vue项目打包所需工具,包括node.js;vue-cli脚手架,webpack工具,还需在jenkins服务器安装git工具用于进行git项目下载。安装内容:1、vue部分:(1)Node.js(安装完成后检查node和npm版本是否已安装完成,命令node -v)(2)安装cnpm(命令:npm install -g cnpm --registry=http

2020-11-03 11:06:08 26

原创 (转)Linux环境下安装Jenkins(超详细)

首先安装Jenkins之前,linux中必须安装好了JDK和Maven,如果还没有安装过,下面准备好安装教程,Linux环境安装JDK:https://www.cnblogs.com/xuliangxing/p/7066913.htmlLinux环境安装Maven:https://blog.csdn.net/qq_35868412/article/details/89471735确认JDk和Maven安装没有问题之后,我们来开始安装Jenkins1.在根目录下创建文件夹mkdir .

2020-11-03 10:38:01 34

原创 (转)权限系统与RBAC模型概述[绝对经典]

0. 前言一年前,我负责的一个项目中需要权限管理。当时凭着自己的逻辑设计出了一套权限管理模型,基本原理与RBAC非常相似,只是过于简陋。当时google了一些权限管理的资料,从中了解到早就有了RBAC这个东西。可惜一直没狠下心来学习。更详细的RBAC模型非常复杂。本文只做了一些基础的理论性概述。本文资料完全来自互联网。1. 权限系统与RBAC模型概述RBAC(Role-Based Access Control )基于角色的访问控制。在20世纪90年代期间,大量的专家学者和专门..

2020-10-26 10:34:28 63 1

原创 mongodb——sort、limit、Count、distinct和skip用法

MongoDB也有Limit读取指定数量的数据记录,Skip跳过指定数量的数据,它俩结合起来就可以做一个分页Sort是MongoDB内置的排序方法,和上面的Limit,Skip可以合用准备测试数据> db.col.find(){ "_id" : ObjectId("5d0346819cd49366b7f099ee"), "title" : "测试1" }{ "_id" : ObjectId("5d0346819cd49366b7f099ef"), "title" : "测试2" }..

2020-10-26 08:41:03 23

原创 vue+flvjs播放直播流FLV性能优化,分页时如何断开之前直播流解决办法

使用flvjs库同时播放flv文件,需要分页发现,之前直播流没有断开,很影响性能,网上查阅借鉴下边代码实现断开上页直播流// 销毁播放器实例 closePlayer() { if (this.player.length > 0) { this.player.forEach((item) => { item.destroy(true); item.off('ended', function () {}); .

2020-10-19 09:06:03 126

原创 (转)vue中监听sessionStorage的变化

为什么要监听storage的变化?当我们在使用vue的时候,有时候需要一个两个数据在全局共享,vue虽然提供了vuex模块来解决此问题,但是为了一两个数据的共享引入vuex未免小题大做,所以我们选择使用storage来保存共享数据,但有个问题就是如何监听storage的变化,让我们可以在保存数据的同时,在另外一个路由中监听到变化并执行操作本例子就是演示此方法完整示例怎么监听首先在main.js中给Vue.protorype注册一个全局方法,其中,我们约定好了想要监听的sessionSto

2020-10-16 09:30:07 140

原创 (转)巧用transform实现HTML5 video标签视频比例拉伸

前言原文地址曾几何时,项目中有碰到视频比例拉伸的需求,但是发现这个看似再普通不过的一个需求,找遍全网至今都没有找到解决方法。因为强制给video标签设置width和height的话只会将video的显示区域拉伸,但是里面的视频还是保持原始比例,怎么调都没用:因为当我横向拉伸时:当我纵向拉伸时:2016-09-21 11:15:40 更新:感谢 @RileyRen 提醒,原来还有object-fit这一属性,把它设置为fill就满足需求了,泪奔~,这篇文章就当看个笑话吧,哎,不

2020-10-14 15:59:29 51

原创 (转)flex布局换行后间隙问题

问题描述今天遇到flex布局换行后产生间隙的问题,本来预期得到以下结果 pre.PNG具体实现如下:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initia...

2020-10-14 15:54:15 76

空空如也

CaseyWei的留言板

发表于 2020-01-02 最后回复 2020-01-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除