自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(112)
  • 收藏
  • 关注

原创 服务器安装Pytorch深度学习环境

最近要开始准备毕设啦,决定写一篇关于如何在实验室服务器安装Pytorch深度学习环境的博客,因为我使用的基本是Pytorch所以如果是使用Tensorflow的小伙伴就可以滑走啦~输出True就说明安装成功啦~~~!撒花*★,°*:.☆( ̄▽ ̄)/$:*.°★*。然后输入python进入python环境来验证是否安装成功。mkdir miniconda(文件夹名)cd miniconda(转到当前文件夹)

2023-10-30 16:50:13 248

原创 牛客Top101 BM28 二叉树的最大深度-- JS实现

求给定二叉树的最大深度,深度是指树的根节点到任一叶子节点路径上节点的数量。最大深度是所有叶子节点的深度的最大值。(注:叶子节点是指没有子节点的节点。)数据范围:0≤n≤100000,树上每个节点的val满足∣val∣≤100要求: 空间复杂度 O(1),时间复杂度 O(n)输入:{1,2}返回值:2示例2输入:{1,2,3,4,#,#,5}返回值: 完整代码:

2022-12-07 11:28:01 281 1

原创 牛客Top101 BM21 旋转数组的最小数字--JS实现

有一个长度为 n 的非降序数组,比如[1,2,3,4,5],将它进行旋转,即把一个数组最开始的若干个元素搬到数组的末尾,变成一个旋转数组,比如变成了[3,4,5,1,2],或者[4,5,1,2,3]这样的。请问,给定这样一个旋转数组,求数组中的最小值。数据范围:1≤n≤10000,数组中任意元素的值: 0≤val≤10000要求:空间复杂度:O(1) ,时间复杂度:O(logn)输入:[3,4,5,1,2]返回值:1示例2输入:[3,100,200,3]返回值:3完整代码

2022-12-07 10:13:36 225

原创 牛客Top101 JS实现得到两个链表的第一个公共结点

输入两个无环的单向链表,找出它们的第一个公共结点,如果没有公共节点则返回空。(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的)数据范围:n≤1000要求:空间复杂度 O(1),时间复杂度 O(n)例如,输入{1,2,3},{4,5},{6,7}时,两个无环的单向链表的结构如下图所示: 可以看到它们的第一个公共结点的结点值为6,所以返回结点值为6的结点。输入分为是3段,第一段是第一个链表的非公共部分,第二段是第二个链表的非公共部分,第三段是第一个链表和第二个链表的公共

2022-12-06 10:08:57 218

原创 牛客Top101 JS实现得到链表中倒数最后k个结点

输入一个长度为 n 的链表,设链表中的元素的值为 ai ,返回该链表中倒数第k个节点。如果该链表长度小于k,请返回一个长度为 0 的链表。 数据范围:0 ≤ n ≤ 10^50≤n≤105,0 ≤ ai ≤ 10^9,0 ≤ k ≤ 10^9要求:空间复杂度 O(n),时间复杂度 O(n)进阶:空间复杂度 O(1),时间复杂度 O(n)例如输入{1,2,3,4,5},2时,对应的链表结构如下图所示: 其中蓝色部分为该链表的最后2个结点,所以返回倒数第2个结点(也即结点值为4的结点)即可,系统会打印后面所有

2022-12-06 09:50:30 118

原创 牛客Top101 JS判断链表中是否有环

判断给定的链表中是否有环。如果有环则返回true,否则返回false。数据范围:链表长度 0≤ n ≤ ≤10000,链表中任意节点的值满足 |val|

2022-12-05 11:12:59 187

原创 牛客Top101 JS合并两个排序的列表

输入两个递增的链表,单个链表的长度为n,合并这两个链表并使新链表中的节点仍然是递增排序的。数据范围: 0 ≤n≤1000,-1000≤节点值≤1000要求:空间复杂度 O(1),时间复杂度 O(n)如输入{1,3,5},{2,4,6}时,合并后的链表为{1,2,3,4,5,6},所以对应的输出为{1,2,3,4,5,6},转换过程如下图所示: 或输入{-1,2,4},{1,3,4}时,合并后的链表为{-1,1,2,3,4,4},所以对应的输出为{-1,1,2

2022-12-05 10:35:39 909

原创 牛客Top101 JS实现反转链表

解释,其实p1指针的作用是用于记录原始链表,p2的作用是用来临时存储结果的, p1=pHead.next;和 pHead=p1;其实就是用来移动指针的作用,核心是pHead.next=p2;p2=pHead这两行代码。给定一个单链表的头结点pHead(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表头。要求:空间复杂度 O(1)O(1) ,时间复杂度 O(n)O(n)。经反转后,原链表变为{3,2,1},所以对应的输出为{3,2,1}。如当输入链表{1,2,3}时,

2022-12-02 15:15:41 406

原创 JS实现二叉排搜索树

二叉树中的节点最多只能有两个子节点:一个是左侧子节点,另一个是右侧子节点。而二叉搜索树又可以简称BST,它是二叉树的一种,但是只允许你在左侧节点存储(比父节点)小的值,在右侧节点存储(比父节点)大的值。上面就可以实现二叉搜索树的初步构建了。接下来来了解一下树的遍历,直接看几个例子就可以理解了。

2022-12-01 20:35:46 524

原创 Lodash.js实现防抖与节流

首先我们从最上面快速往下滑,在鼠标移入事件里面输出一下index。产生原因:这是因为太快了,浏览器还没反应过来。简单理解:节流相当于技能cd,防抖相当于回城。,那么就来看看第二种如何做。这样就只会打印这几个。

2022-12-01 09:08:38 2950

原创 Vue-配置代理(解决跨域问题)

上面那个图,左边是客户端所处位置,中间是代理服务器,要注意,红色框是客户所处位置,右边蓝色框是5000服务器,中间的粉色框因为是服务器和蓝色框服务器 之间进行数据请求阔以直接请求,因为不用ajax进行通信,直接http就阔以。2.不能灵活控制走不走代理,比如我public文件夹里面要是有student文件它就不会走代理而是直接把student文件给我们。现在解决跨域主要有两种方式是CORS和Jsonp,但是在开发中用的比较多的是配置一个代理服务器。1.只能配置一个代理服务器。(2)配置代理服务器方式二。

2022-11-01 15:49:29 3441

原创 Vue的计算属性与监视属性

(2)所有不被Vue所管理的函数(定时器的回调函数、ajax的回调函数、Promise的回调函数等),最好写成箭头函数,这样this的指向才是vm或者组件实例对象。这个部分就有问题,你的return返回的值是交给setTimeout的不是fullName,所以根本得不到计算属性的值就无法渲染。(1)所有被Vue管理的函数最好写成普通函数,这样this的执行才是vm或者组件实例对象。(1)Vue自身可以监测对象内部值的改变,但Vue提供的watch默认不可以。(1)计算属性能完成的功能,监视属性都可以完成。

2022-10-24 09:41:24 990

原创 Vue数据代理

我想要person多一个age属性,并且age的值由numer决定,那么很多就直接在person中写一个age:number,但是问题在于如果后面number做了修改,比如number=19,这个时候person里面的age并不会改变,现在又有说那么number变了之后就直接person.age=number,但是这样就很麻烦,我想的是我number变了我的age就跟着变,那该怎么做呢?(2)那如果想要遍历Object.defineProperty()方法新增的属性该如何做呢?下面的代码非常重要!

2022-10-24 09:29:43 494

原创 JWT身份认证机制实现

复制这个token再发起一个get请求,在header中添加authorization属性和值,值就是token,但是要注意前面必须加上Bearer。下面这个unless是用来指定哪些接口不需要访问权限,比如下面这个就是以/api开头的就不需要访问权限,可以直接进入。JWT的全称是JSON Web Token,是目前最流行的跨域认证解决方案。(3)JWT的工作原理(重要!(7)Express中JWT的使用。(5)JWT各个组成部分的含义。(4)JWT的组成部分。(6)JWT的使用方式。

2022-10-14 16:06:01 1627

原创 session身份认证机制

本博客讲述session身份认证机制,在了解session身份认证机制之前,需要先了解以下内容。前端身份认证主要分为两种,一种是Session身份认证,一种是JWT身份认证。(3)Session身份认证的工作原理(重要!(4)在Express中使用session认证。服务端渲染推荐使用session认证机制。前后端分离推荐使用JWT认证机制。Cookie在身份认证中的作用。Cookie不具有安全性。(1)HTTP无状态性。提高身份认证的安全性。

2022-10-12 21:09:21 845

原创 跨域-编写jsonp接口

【代码】跨域-编写jsonp接口。

2022-10-11 15:05:52 225

原创 编写接口-基于cors解决接口跨域问题

这个网站可以找到在线的jquery.min.js文件,就不用下载之后导入了。

2022-10-11 10:46:13 212

原创 Express中间件

然后get或者post请求首先会交给中间件进行处理,所以首首先会打印sysysy,然后再转交给get或者post路由进行处理。例如我想得到到达每个路由的时间,按照原来的做法就是将每个路由中都写一个Date.now()这样就多了很多重复代码,那么为了简化这个就阔以使用中间件来进行处理。1.应用级别中间件(绑定到app实例上的中间件)2.路由级别中间件(绑定在路由上的中间件)(1)中间件的作用:对请求进行预处理。(9)中间件的使用注意事项。(10)中间件的分类。(2)中间件的调用流程。(4)全局生效中间件。

2022-10-11 10:37:56 491

原创 创建AutoDL云服务器实例并安装GPU环境(三)

上面的镜像文件需要在网上去找镜像,这里就不多说了。这里建议把镜像上传到网盘中,后续安装多个实例也更加方便,同时大家要注意,需要传到同一个地区服务器的网盘下。2.输入:ipython kernel install --user --name=py38。那么关于创建AutoDL云服务器实例并安装GPU环境最后一篇博客来啦~(6)先激活配置环境,然后运行下面这段代码检查GPU是否配置成功。在jupyter页面里面就可以看到下面多了一个基础环境。出现下面的结果就说明配置成功啦!输入实例的ssh和密码远程链接。

2022-09-27 20:24:24 7305 7

原创 节流阀-鼠标跟随效果案例

就像是游戏发动技能,貂蝉一技能用过之后,没有冷却好的时候要是再点是没有办法触发技能的,而防抖就像回城,可以被打断但是可以重新回城,最后回一次城。节流执行的是触发第一次,而防抖执行的是触发的最后一次。节流策略:顾名思义,可以减少一段时间内事件的触发频率。

2022-09-18 18:59:29 138

原创 JS淘宝搜索框防抖策略

也就是当用户键盘弹起之后,这里相当于就是按下键盘后,先清楚定时器,然后开启一个定时器,这个定时器里面的代码是500ms之后才会执行,要是在这500ms之内用户又按下了键盘,那就会再清除定时器,再重新开启一个定时器,也就是如果快速按下三个字母,最后只会执行一次JSONP请求。防抖的概念:防抖就是当事件被触发后,延迟n秒后再执行回调,如果在这n秒内事件又被触发,则重新计时。防抖的好处:防抖的好处在于不会频繁执行回调,能保证回调最终只被执行一次,能提高浏览器性能。(2)定义一个防抖的函数。

2022-09-18 17:03:20 899

原创 JSONP解决跨域问题

JSONP的实现原理:由于浏览器收同源策略的限制,网页无法通过Ajax请求非同源的接口数据,但是script标签不受浏览器同源策略的影响,可以通过src属性请求非同源js脚本。简而言之,JSONP的实现原理就是通过标签的src属性,请求跨域的数据接口,并通过函数调用的形式,接收跨域接口响应回来的数据。出现跨域的根本原因:浏览器的同源策略不允许非同源的URL之间进行资源的交互。概念:同源指的是两个URL的协议、域名、端口号一致,反之则是跨域。八、实现一个简单的JSONP数据请求。

2022-09-18 11:59:10 7085 1

原创 Ajax-正则的使用

正则表达式中()包起来的内容表示一个分组,可以通过分组来提取自己想要的内容。这篇博客主要讲正则五个方面的应用,有单独的也有互相结合的,那么下面我们就开始吧!(1)正则的exec函数。

2022-09-17 13:03:32 320

原创 Ajax-模板引擎常见使用

【代码】Ajax-模板引擎常见使用。

2022-09-13 21:44:16 74

原创 Ajax-评论列表案例

功能二:添加评论,思路是要先阻止表单的默认行为,不然会把输入内容显示到URL中,然后进行$.post()请求提交表单内容,成功则刷新评论列表,同时需要清空评论人和评论内容框,这里清空的方法采用reset()方法,这样就不用一个一个去清空表单内容,操作更加简洁。业务部分都写在cmt.js文件中。

2022-09-13 18:26:33 537

原创 Ajax-图书管理案例

功能三实现思路:给添加按钮添加点击事件,获取书名、作者、出版社,然后判断用户输入的内容是否包含空,再采用$.post()请求接口提交数据,判断状态码是否为201,不是则提交失败,如果成功就重新刷新页面渲染最新数据,然后把文本框中输入的内容清空。功能一实现思路:首先采用$.get()请求接口数据,判断状态码是否是200,不是则获取失败,然后创一个空数组用来存表格中的每一行,循环获取过来的数组对象,得到添加的html内容,然后清空tbody中的内容并将html内容添加到tbody中。3.实现添加图书的功能。

2022-09-13 14:51:40 601

原创 ES6高级-async的用法

使我们的异步操作更加方便,它会返回一个Promise对象,async是Generator的语法糖。

2022-08-04 20:59:44 248

原创 ES6高级-Promise的用法

有时候会有多个Promise,比如在游戏控制的时候,Promise1是图片加载,Promise2是flash加载,Promise3是静态资源加载,要求当三个都加载完成之后再进行页面的初始化,这个时候就要用到all()方法,总结就是异步并行操作。then()的第一个参数是resolve回调函数,第二个参数是可选的,是reject状态回调的函数,then()方法返回的是一个新的Promise实例可以采用链式编程。相当于一个容器,保存着未来才会结束的事件(异步操作)的一个结果。来看几个Promise的案例代码。.

2022-08-04 10:54:36 280

原创 ES6高级-迭代器与生成器的用法

在讲生成器之前需要知道迭代器的用法,所以我们先来讲一下迭代器一、迭代器 items[Symbol.iterator]是一个函数,所以返回迭代器的时候需要在后面加()进行掉用来返回迭代器二、生成器 它和普通函数的差别在于:1.function后面函数名前面要加*2.只能在函数内部使用yield表达式,让函数挂起我们来看下面这段代码: 输出结果是:我们再来看一段代码: 输出结果: 输出结果: 三、生成器的应用我们先来看什么是回调地狱:简单来说就是去使用ajax发送请求的时候

2022-08-03 16:24:15 164

原创 ES6-箭头函数this指向

因为箭头函数是没有this指向的,所以在click事件里面的回调函数就没有this,它会去上一层init里面去找,init也是一个箭头函数也没有this指向又到Page,然后找定义Page对象的作用域链就是window。因为箭头函数是没有this指向的,所以在click事件里面的回调函数就没有this,它会去上一层init里面去找,init也是一个箭头函数也没有this指向又到Page,然后找定义Page对象的作用域链就是window。...

2022-07-28 20:17:26 328

原创 ES6高级-查询商品案例

功能三根据商品名称查询商品。功能一动态渲染数据到页面。3.根据商品名称显示数据。功能二根据价格查询商品。1.把数据渲染到页面中。2.根据价格显示数据。

2022-07-26 12:26:32 384

原创 ES6高级-利用原型对象继承方法

但是上面的代码也有问题,就是这句Son.prototype=newFather();,这样写的话Son的prototype就没有constructor了,所以需要指回原来的原型对象,加上Son.prototype.constructor=Son();我们就可以发现如果直接把父类的原型对象赋给子类的原型对象,虽然子类可以继承父类的方法,但是如果子类添加方法的话就会对父类造成影响。把子原型对象指向了父原型对象,所以修改子原型对象也会修改父原型对象,所以得换一个方法实现方法继承。...

2022-07-25 22:30:23 159

原创 ES6高级-利用构造函数继承父类属性

核心原理通过call()方法把父类的this指向子类的this,这样就可以实现子类继承父类属性。二、利用构造函数继承父类属性。(2)更改函数this指向。一、call函数的作用。

2022-07-25 22:24:46 238

原创 ES6高级-面向对象版Tab栏切换

4)以前的做法是动态创建元素createElement,但是元素里面内容较多,需要innerHTML赋值,在appendChild追加到父元素里面。(4)核心思路双击文字的时候,在里面生成一个文本框,当失去焦点或者按下回车然后把文本框输入的值给原先的元素即可。(6)appendChild不支持追加字符串的子元素,insertAdjacentHTML支持追加字符串的元素。(2)x是没有索引号的,但是它的父亲li有索引号,这个索引号正是我们想要的索引号。(3)第二步把创建的两个元素追加到对应的父元素中。...

2022-07-23 17:51:47 370

原创 Jquery-todolist案例

5.注意点2获取本地存储数据,需要把里面的字符串转换为对象格式JSON.parse(),我们才能使用里面的数据。6.load加载函数里面,新增一个条件,如果当前数据的done为true就是已经完成,就把列表渲染到ul里面。1.页面中的数据都要从本地存储里面获取,这样刷新页面就不会丢失数据,所以要先把数据保存到本地存储里面。2.核心原理先获取本地存储数据,删除对应的数据,保存给本地存储,重新渲染列表li。1.点击里面的a链接,不是删除的li,而是删除本地存储对应的数据。...

2022-07-20 15:21:17 461

原创 Jquery-微博发布案例

功能一实现思路首先创造一个li,然后把文本框的内容给li,再创建一个删除链接,把内容和删除链接追加到ul中,最后让li滑动出来(只是为了效果好看),之后清空textarea里面的内容。最外层是一个div包裹,然后是横着依次是span标签,textarea标签以及button按钮,下面是ul。这个布局比较简单就不多说了。1.点击发布按钮,动态创建一个li,放入文本框的内容和删除按钮,并添加到ul中。2.点击删除按钮可以删除当前微博留言。...

2022-07-17 20:01:16 529

原创 Jquery电梯导航案例

但是如果不加节流阀就会出现如果由第三个内容部分点击第二个内容部分,那么首先会执行把第二个内容部分添加slidered类,然后再调用一次页面滚动事件又会给三和二分别添加slidered类,所以当点击电梯导航的时候不能执行滚动页面的操作,所以需要添加一个节流阀来控制是否执行页面滚动操作,首先把节流阀设置为true这样本来滚动页面添加类的功能就可以实现,然后当点击的时候就把节流阀设置成false,当页面滚动完之后再把节流阀打开不然滚动添加类的功能在点击之后就失效了。(3)点击当前li添加slidered类。...

2022-07-15 20:51:29 664

原创 Jquery-带有动画的返回顶部

4.返回顶部的动画不能采用$(doucument).animate()因为只有元素能添加动画,只能采用$('body,html').animate({scrollTop0})2.页面滚动事件$(window).scroll(function(){})3.元素的淡入和淡出采用fadeIn()和fadeOut()方法。1.得到元素距离页面顶部的距离采用scrollTop()方法。最后需要实现点击返回顶部返回到刚开始的状态。...

2022-07-15 16:29:45 645

原创 Jquery购物车模块-清理购物车和选中商品添加背景颜色

3.删除选中的商品先判断小的复选框和按钮是否选中状态,如果是选中则删除对应的商品。1.有三个地方需要删除①商品后面的删除按钮②删除选中的商品③清理购物车。1.全选按钮点击如果全选是选中的则所有商品添加背景否则移除背景。2.小的复选框点击如果是选中状态则当前商品添加背景否则移除背景。4.每次删除事件中都要重新调用计算总价格和总数量的函数。2.商品后面的删除按钮点击之后一定是删除当前的商品。3.这个背景可以通过添加和移除类名来实现。2.选中商品添加背景颜色模块。二、选中商品添加背景颜色模块。...

2022-07-14 20:48:21 739 2

原创 Jquery购物车模块-计算总件数和总额

首先来看布局: 布局非常简单,这里就不多说了,直接来看功能实现部分,首先因为每次每个模块点+或者-都会更改下面的总件数和总价,所以直接写一个函数来获取总件数和总价,然后当点击+或者-号的时候就调用这个函数即可。那么这个函数的思路如下:1.循环每一个模块的件数,然后进行遍历,将每一个模块的件数加起来就是总件数2.循环每一个模块的总结个,然后进行遍历,将每一个模块的总价格加起来就是最终的总价格3.把总件数和总价格赋值给下面对应的元素即可这里要注意获取到的件数和价格都是字符串类型的需要进行数值转换再相加。最终

2022-07-12 20:51:35 1286

空空如也

空空如也

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

TA关注的人

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