- 博客(71)
- 资源 (7)
- 收藏
- 关注
原创 回溯法之迷宫最短路径,c++实现
迷宫最短路径迷宫的算法很多,但是解释原理的却很少,在这里我利用自己的亲身经历来讲解一下求解迷宫的原理,迷宫求解可以利用栈结构,即深度优先,探索一个位置就标记,通则走,不同则后退寻找下一个位置,可以求出通路,简单但是不一定是最短路径,这里求最短路径利用的是广度优先的思想,什么是广度优先,利用队列实现,一个元素出对,然后访问这个元素相邻的所有元素,原理是,一个二维数组,0表示墙,1表示路,这里我利用......
2019-06-18 17:01:32 10897 12
原创 VS2017关于 OpenCV 配置好后出现头文件找不到得问题!
VS2017关于 OpenCV 配置好后出现头文件找不到得问题!出现这个问题的原因是由于我们配置的是64位的,编译器环境是32位的,所以需要在属性管理器窗口更改,属性管理器打开方法,视图->其他窗口->属性资源管理器,把平台信息改成X64,然后点击配置属性管理器,把平台信息改为64位即可。注:本人第一次发表文章,这是自己根据自己的实际操作解决的问题,希望对遇到相同问题的人又...
2018-11-20 11:51:20 5413 3
原创 AMD模块的使用案例-基于普通htm
AMD 是一种适用于浏览器环境的模块化规范,主要用于异步加载模块。RequireJS 是实现 AMD 的一个流行库。引入模块所用主文件:main.js。引入 RequireJS 库。index.html,使用。模块1:greet.js。模块2:math.js。
2024-06-20 15:56:44 462
原创 mysql8.x安装教程,window版本
如图选中,mysql server和mysql documentation,点击next。然后点击next,最后点击finish即可完成安装。点击next,等待进度条完成,然后再点击next。选择custom,然后点击next。双击安装包,然后按照下述步骤操作。点击execute,等待进度完成。设置密码,然后点击next。
2024-06-18 16:58:04 338
原创 通过css修改video标签的原生样式
在控制台中打开设置,勾选显示用户代理 shadow DOM,就可以审查video标签的内部样式了。箭头处标出来的就是shodow DOM的内容,这些内容正常不可见的,只有勾选了才会显示。修改video标签的原生样式。
2024-02-26 15:36:05 1483
原创 同源不同页面之间的通信,SharedWorker使用
同源不同页面之间的通信,使用SharedWorker,或者使用全局方法通信,这里使用SharedWorker来实现。
2024-02-26 14:57:56 688
原创 字符串转换整数 ,js实现
如果整数数超过 32 位有符号整数范围 [−231, 231 − 1] ,需要截断这个整数,使其保持在这个范围内。具体来说,小于 −231 的整数应该被固定为 −231 ,大于 231 − 1 的整数应该被固定为 231 − 1。将前面步骤读入的这些数字转换为整数(即,“123” -> 123, “0032” -> 32)。请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。ps:leetcode心得记录。
2023-07-05 15:06:32 318
原创 leetcode整数反转,js实现
如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。假设环境不允许存储 64 位整数(有符号或无符号)。
2023-07-03 11:13:53 374
原创 闭包实现函数柯里化,js实现
柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术即函数可以接收单个或多个参数,并按照单个参数进行处理,以下是调用例子。
2023-06-30 11:41:14 361
原创 左到右进行 Z 字形排列,js实现
之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“PAHNAPLSIIGYIR”。将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。PS:leetcode心得,欢迎交流。第一和最后一层相同,据观察。不同层级时,下标排列如下。
2023-06-29 09:28:14 229
原创 回文字符串,js实现
这题最好想到的思路就是找到一个数然后从两端开始找,即中心扩散法。如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。给你一个字符串 s,找到 s 中最长的回文子串。ps:leetcode刷题随笔,欢迎交流。
2023-06-27 11:51:24 613
原创 寻找两个正序数组的中位数,js实现
中位数位置计算规则如下:数据个数是奇数时,中位数是下标为arr[len/2],当数据个数是偶数时,中位数是下标为(arr[len/2] + arr[len/2-1]) / 2。给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数。由于O(log (m+n))意味着我们需要采用类似二分法的思路,算法的时间复杂度应该为 O(log (m+n))。PS:leetcode心得,坚持刷,欢迎交流。
2023-06-26 11:48:17 385
原创 重复子串问题,滑动窗口求解,js实现
给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。PS:该文是对leetcode的知识笔记,欢迎交流。
2023-06-20 16:59:06 138
原创 力扣红蓝灯算法思路( 前缀一致)
记录下翻牌的最大值,如果还没到最大值的位置,就算 1-i全是1也不对,因为最大值位置是1所以当检查的下标i+1 = max的时候,就说明1-i的位置都是1,后续的位置是没有翻开的因为flips存储的是1开始,循环是0开始,因此需要i+1。
2023-06-19 16:41:51 612
原创 基于nodejs实现text/event-stream简单应用案例,SSE
使用 text/event-stream,服务器可以实现与客户端的实时双向通信,通过推送事件来传递实时数据和状态变化。它与其他实时通信技术(如 WebSocket)相比,更适合于单向的服务器向客户端的通信场景,不支持客户端向服务器发送消息。它提供了一种简单的方式来实现服务器推送的功能,且在浏览器端的兼容性较好。是一种用于服务器向客户端推送事件的媒体类型(Media Type)。它是基于 HTTP 协议的一种流式传输技术,也被称为 Server-Sent Events(SSE)
2023-06-08 17:54:30 3405
原创 http强缓存和协商缓存的介绍和应用案例,简介明了
强缓存:强缓存使用Expires(老版本)和cache-control(新版本)来控制协商缓存:协商缓存使用if-Modified-Since 与 Last-Modified配对、If-None-Match与Etag配对来控制。
2023-05-15 11:43:43 515 1
原创 动态规划求解最长公共子序列通俗易懂,c++实现
最后取结果的时候,从后往回取,状态是1的则表示符合最长公共子序列,如果是2左移(左移是因为我们在前面设置条件的时候设置了关系),否则上移。ps:本文算法不是最优写法,只是为了容易理解,把代码写的更加易读和输出了计算过程的信息。
2023-05-05 14:06:07 629
原创 基于脚手架@vue/cli 5.0.8搭建vue3项目教程
脚手架可以快速的帮我们搭建一个项目,而不需要我们从头开始去配置和引入插件,使用脚手架5.0.8版本创建的项目,局部webpack是5.x版本的,因此所有的配置均需要使用支持5.x版本的插件使用控制台进入到项目存放目录,使用命令vue create demo创建名为demo的项目选择自定义勾选Babel、Router、Vuex、css预处理、eslint等,如果需要ts的也可以勾选选择vue版本3.x选择n,hash模式,然后选择less作为自己的项目预处理语言。
2023-04-19 11:34:55 5368
原创 前端webpack项目性能优化——体积压缩和compression-webpack-plugin的使用
脚手架搭建的项目,会默认开启sourceMap,此时打包下来的包会很大,如图:map文件比所有js文件都大,会导致包整体体积过大,js文件大小超过100k,也很大不符合预期,这还只是空项目的情况下。如果觉得还不够小的话可以通过其他方式进一步进行优化。
2023-04-18 09:04:24 816
原创 webpack5.x配置stylelint在保存时自动校验并修复错误,基于stylelint-webpack-plugin插件实现
脚手架创建的项目是没有stylelint选项选择,但是,项目开发过程中我们会写比较多的css样式,因此统一格式和样式顺序会使代码看起来更加美观。,配置保存时自动校验并修复我们的css代码,需要用到stylelint-webpack-plugin插件。此教程的webpack版本5.x,其他版本的可以查看插件支持版本自行调整,配置stylelint可以参考这篇文章。
2023-04-17 18:39:08 971
原创 脚手架vue-cli创建的项目如何基于eslint-webpack-plugin配置eslint在保存时自动修复错误
由于脚手架本身在配置项目时,选择了eslint配置,会自动下载好了eslint-webpack-plugin插件并配置好了的,因此,我们如果按照官网的方式直接配置是不会生效的,因为配置的时候会位于原本的之后,因此调用不到,我们只需要直接获取到已经配置好了的插件相关配置信息,进行修改成我们想要的配置就可以达到目的。脚手架vue-cli创建的项目如何基于eslint-webpack-plugin配置eslint在保存时自动修复错误。
2023-04-14 15:02:00 374
原创 基于react+nodejs+mysql开发用户中心,用于项管理加入的项目的用户认证
用户中心项目,用于统一管理用户信息、登录、注册、鉴权等用户创建项目后可以查看自己创建的项目可以查看被加入的项目(被加入的项目又可以划分为管理员身份和普通身份去筛选查看,自己的项目和拥有管理员以上权限的项目可以进行授权管理被授权的用户可以登录对应的项目系统,并返回相应的用户信息用户中心管理员可以对用户中心的用户进行管理,比如禁止登录,删除和修改用户信息等提供统一的登录界面,供需要的项目引用提供统一的用户认证接口,在自定义的登录页面登录时调用即可。
2023-02-22 17:27:09 570
原创 基于puppeteer的动态爬虫,爬取SPA项目页面
静态爬取数据会快很多,动态爬取速度会慢,因为需要打开浏览器,然后再等待页面加载完成,需要时间去渲染,因此会比静态的慢一些,但是可以获取比较复杂的页面,也可以以此来做服务端渲染。
2023-01-31 09:12:25 1114
原创 解决elementUI的el-input密码框自动填充禁用失败解决方案
在el-input中设置属性autocomplete=”off",普通文本可以生效,但是密码框点击后还是会提示用户信息,由于用户信息提示只跟input有关,因此,我们可以通过监听input的行为来,不然其显示,根据测试,在鼠标按下的时候,就会展示用户信息自动填充框供选择,因此,监听的事件要在按下鼠标的时候,即。事件,在input获得焦点时,先失去焦点,就不会提示用户信息,然后再通过js代码去获取焦点,此时不会触发用户信息框。禁用登录的时候提示用户信息,即不允许保存账号密码。
2022-09-14 15:30:45 4916 3
原创 webpack中stylelint配置,手动校验样式方案
目前的配置只支持在终端输入命令去校验和修复。stylelint-order 用于样式排序,顺序可以在。stylelintrc.js的数组中配置postcss-html 用于vue和html文件校验postcss-less 用于less文件校验。
2022-08-10 16:30:21 1177
原创 element树形表格懒加载勾选问题解决方案
element树形表格懒加载勾选问题解决方案,整体实现思路如上面所描述,可以根据这个思路去实现,难度不大,需要一定的思绪,由于是项目代码就补贴出来全部了ps如果有疑问可以评论或者私信询问pselement树形表格数据问题文章可以看这边篇文章httpshttps。.........
2022-07-22 15:28:38 1001
原创 elementUI 表格懒加载数据更新不及时,或者需要手动添加数据或者修改数据问题
elementUI 表格懒加载数据更新不及时,或者需要手动添加数据或者修改数据问题问题分析部分代码展示总结问题分析elementUI 表格懒加载数据更新不及时,或者需要手动添加数据或者修改数据问题,如图:使用树形表格时,由于elmenetUI官网没有提供表格的最新数据对象获取方法,因此我们无法拿到最新数据,也无法修改数据对象,但是elementUI有一个表格的state属性我们可以直接操作它来达到目的—》this.$refs.mulTable.store.states.lazyTreeNodeMa
2022-05-07 15:34:19 2124 1
原创 超容易理解的方式去解释动态规划之01背包问题,c++实现
动态规划之01背包问题,c++实现问题描述算法实现结果问题描述01背包问题问题分析动态规划法分析:1.划分子问题,2.得出子问题的递推公式,3.填表划分子问题用数组V[n][n]存储价值和重量关系,行表示物体,列表示重量第0行和第0列设置为0,没有物体的时候价值没0,重量为0的时候物体无论多少价值也为0如果第i个物体重量小于当前总重量j,则取前i-1和第i个物体组合的最优值,否则该物体不可以放进背包,取前i-1个物体的最优价值递推公式不装入背包时:V(i-1, j) j <
2022-04-08 18:24:00 1614
原创 动态规划求序列的最长递增子序列,c++实现
动态规划求序列的最长递增子序列,c++实现描述算法实现结果输出描述求序列的最长递增子序列问题剖析划分子问题只有一个序列的时候,就是序列本身,且长度为1序列长度大于2的时候,用L[n]数组存放每个子问题的最长长度,每i个序列位置的处理,都以其前i-1个已经找到的当前最长比较最后一位是否符合递增符合,并且其长度L[i-1]+1大于子问题目前的最大长度,则长度L[i-1]+1,L[i] = L[i-1]+1, 使用arr[i][n]存放每一个子问题的最长序列递推公式长度为1时,L(1
2022-04-08 10:24:52 1135
原创 采用动态规划思维求解数塔问题,c++实现
采用动态规划思维求解数塔问题,c++实现数塔问题算法实现结果数塔问题问题描述: 加粗样式从塔顶往下走,如何走过的步数最大问题分析:数塔游戏(5层)从塔顶到塔底,走过的值最大从第一层开始,往左走还是往右走,变化两个4层他的问题,因此改问题存在子问题重叠性质由于该问题要求走过的值最大,因此,该问题存在要求最优解,因此符合动态规划用法递归求解过程:塔数据用二维数组存储d[5][5],规划表格用maxD[5][5]存储(用来存储子问题的解),该结构是下三角结构划分子问题:第1层走左还
2022-03-30 16:53:40 4582
原创 一张base64图片格式的图片,将其转化成blob然后上传到服务器
一张base64图片格式的图片,将其转化成blob然后上传到服务器需求描述实现总结需求描述一张base64图片格式的图片,将其转化成blob然后上传到服务器,后台跟接收表单文件上传一样的方式去处理改图片实现// url 表示base64的字符串, name表示文件名,附加到blob上的那么、上uploadFile(url, name) { // 以逗号划分类型和内容 let arr = url.split(',') // 截取类型
2022-03-28 14:58:02 1506
原创 数组排序之堆排序,c++实现
数组排序之堆排序,c++实现问题描述算法实现结果如下问题描述采用堆排序的方法去排序一个数组{47, 35, 26, 20, 18, 7, 13, 10}数组对应堆的图例,根节点大于左右孩子节点分析:组建堆,第i个节点和其左右孩子分别对应第2i + 1和2i + 2下标的数据如何确定堆有几层?如下数组的最后一个值的下标为n其父节点为i,所以存在关系n = 2*i+1 => i = (n-1)/2即第0i个节点是有子节点,i+1n个节点是叶子节点首次建堆处理,把树处理层,根节点大于或
2022-03-22 17:41:31 1870
原创 减治法应用在插入排序算法
减治法应用在插入排序算法问题描述算法实现问题描述采用减治法进行插入排序减治法是将问题分割成子问题,子问题的解跟原问题存在某种关系,(划分为有序区和无序区)初始时,将第0个位置设置为哨兵(防止越界)划分有序区和无序区,第1个位置为有序区,其余为无序区从第二个位置开始,在有序区中查找位置插入算法实现// # 1. 减治法排序之插入排序// # 2. 初始时,将第0个位置设置为哨兵(防止越界)// # 3. 划分有序区和无序区,第1个位置为有序区,其余为无序区// # 4. 从第二个位
2022-03-21 17:50:50 1755
原创 典型递归求解之汉诺塔问题,c++实现
典型递归求解之汉诺塔问题,c++实现问题分析实现总结问题分析汉诺塔问题是典型的递归问题,假设有n个盘要移动,n>0;A、B、C分别为三个柱子,A是原始柱子(有盘),B是间接柱子,C是目标柱子将n个盘从A移动到C,最终结果一定是,将n-1个盘移动到B,然后第n个盘移动到C此时,A上没有盘,B上有n-1个盘,C上有一个盘n有3可知,此时要做的是将B上的n-1个盘移动到C上,A是间接柱子此时问题的状态回到第一步的,只是原始柱子从A变成了B,重复到n==0即没有盘在A、B柱子上,算法结束。
2022-03-17 19:24:50 720
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人