自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 动态规划几个例题!!

动态规划法!!!dp[i][j]=true表示字符串从下标 i 到下标 j 的位置是一个回文子串(所谓的状态转移)var longestPalindrome = function(s) { let len=s.length; let dp=[]; for(let i=0;i<len;i++){ dp[i]=[]; dp[i][i]=true; } let start=0,maxlen=1;//start为开始位置,maxle.

2021-03-22 16:07:23 604

原创 MongoDB使用教程

1、下载:https://www.mongodb.com/try/download/community2、安装解压下载包后正常步骤安装创建服务e:\Application-develop\MongoDB\bin为路径data、log文件若安装之后没有,需提前创建在cmd中运行以下命令,将相关路径更改成你的即可【注意:cmd要以管理员身份运行,否则无效!!!】e:\Application-develop\MongoDB\bin>mongod --install --dbpath

2021-03-13 00:33:46 1023 1

原创 算法题算法题!!!!

0223思路:先计算出老板没控制自己的情绪时的满意数量sum,再根据X的值,维护一个滑动窗口,遍历grumpy数组,计算增加的满意数量add,选取最大的一个,最后返回结果(sum+add)。var maxSatisfied = function(customers, grumpy, X) { let sum=0; let add=0; for(let i=0;i<customers.length;i++){ if(grumpy[i]==0){

2021-02-23 20:45:54 572

原创 Android Studio开发的一些知识点

Android Studio开发的一些知识点为了完成安卓大作业,从0用起Android Studio,我把开发过程中遇到的一些知识点做了个整理1、res包下的layout下的xml文件的名称不得含有大写字母,只能是小写字母2、manifests下的`AndroidManifest.xml文件为清单文件,该文件中:注册activity<activity android:name=".ForgetActivity"></activity>即每创建一个Activity文

2021-01-08 23:22:54 622

原创 设置Android Studio中的模拟器

怎么设置Android Studio中的模拟器,下面记录一下大概流程然后自己选择设备,next下好了之后next建立后可能会出现以下图片所示问题位于…的ADB二进制文件已过时,并且在Android仿真器中存在严重的性能问题。请更新到新版本,以显着加快应用程序/文件的传输速度。在网上查了一些解决方法:选择SDK Tools,找到有Update Aw…字样的选项,每个人的不一样,有的是Android SDK Build…【PS】它也有可能是“ SDK工具/显示软件包详细

2021-01-06 22:43:59 13270

原创 Android Studio的运行键(三角)是灰的

点开工程文件,想运行发现运行键是灰的此时在确保上一篇遇到的download问题解决后,点击图中位置的Add Configuration进行配置图中为已配好的界面,初次配置是没有Android App那些的此时运行符就变回绿色了,就可以运行了...

2021-01-06 20:56:30 3829 1

原创 Android Studio一直在Download https://services.gradle.org/distributions/gradle-5.4.1-all.zip的解决方法

Android Studio下面一直出现Download https://services.gradle.org/distributions/gradle-5.4.1-all.zip解决方法:去https://services.gradle.org/distributions/网站下载需要的gradle.zip但会下得很慢很慢,我的包也是从朋友那里拷的,如果有需要可以私戳我然后找到你的电脑的用户目录下的.gradle文件->wrapper->dists->gradle包->

2021-01-06 19:38:48 15075 37

原创 没有Android SDK选项的解决办法+修改Android Studio中的Sdk路径

安装教程安装Android Studio时没有Android SDK选项,可以先不管,继续安装注意在安装的过程中,应该在最后一步install时,会出现一个sdk的位置比如我的在C:\Users\Administrator\AppData\Local\Android\Sdk,备注一下这个地址先不管,继续安装,直到安装完成这里选Cancel直到这个界面接下来我们找到刚才备注的地址下的Sdk文件,将其剪切到我们自己规定的文件路径中,然后重新配置Android Studio里的sdk路径

2021-01-04 22:54:32 13319 1

原创 java搭建项目环境+实现登录功能

搭建项目环境1、file -> new Project -> 取名(webProject)2、右击webProject -> Add Framework Support ->选中Web Appliacation ->OK (此时会多出一个web包3、点开WEB-INF -> 点开web.xml (此处可进行一些配置设置),此时不用配置4、点击工具栏靠右上角的 Add Condiguration ->点击左上角的“+”号 -> 找到 Tomcat Ser

2020-12-30 23:12:23 658 1

原创 Java入门01

Java入门安装好jdk文件后,使用java -version (cmd中查看Java版本)新建一个TXT文件,输入以下代码,改后缀为.javaclass Demo{ public static void main(String[] args){ System.putprint('hello world!') } }进入该文件目录,鼠标点击文件路径,输入cmd,在环境中输入javac demo.java随后会生成一个.class文件然后(在cmd中)输入

2020-12-30 23:01:26 103

原创 关于JavaScript原型链

关于JavaScript原型链创建对象的方法在了解原型链之前,先了解以下三种创建对象的几种方式: //第一种:字面量 var o1={name:'o1'} var o2=new Object({name:'o2'}) //第二种:构造函数 var M=function(name){this.name=name;} var o3=new M('o3') //第三种:Object.create var s={name:'s'} va

2020-12-18 15:04:15 128

原创 7-使用Ajax

1、AJAXAJAX = Asynchronous JavaScript and XML(异步 JavaScript 和 XML)。AJAX 不是新的编程语言,而是一种使用现有标准的新方法。AJAX 是与服务器交换数据并更新部分网页的艺术,在不重新加载整个页面的情况下。2、XMLHttpRequestXMLHttpRequest 是 AJAX 的基础。XMLHttpRequest 对象用于和服务器交换数据。使用XMLHttpRequest 对象实现异步通信一般需要以下几个步骤:定义XML

2020-12-11 17:58:39 129

原创 6-JavaScript操作事件

前言事件是JavaScript最鲜明的特性,JavaScript以事件驱动实现页面交互,当事件发生时,浏览器会自动调用事件处理函数,同时生成事件对象,传递给事件处理函数。【学习要点】了解事件模型、事件流、事件类型能够正确注册事件、销毁事件能够自定义事件1 事件基础1.1 事件流事件流是多个节点对同一种事件进行响应的先后顺序,主要包括:1、冒泡型2、捕获型3、混合型(支持冒泡型和捕获型两种事件流)根据事件流类型,可把事件传播的整个过程分为3个阶段:捕获阶段事件从docu

2020-12-10 20:50:42 157

原创 JS事件循环机制(Event Loop)

JavaScript是一门单线程的非阻塞的脚本语言。单线程意味着,JavaScript代码在执行的时候,都只有一个主线程来处理所有的任务。而非阻塞则是当代码需要执行一项异步任务(无法立刻返回结果,需要花一定时间才能返回的任务,如I/O事件)时,主线程会挂起(pending)这个任务,然后在异步任务返回结果的时候再根据一定规则去执行相应的回调。javascript选择只用一个主线程来执行代码,这样保证了程序执行的一致性。单线程在保证了执行顺序的同时也限制了JavaScript的效率,因此开发出了web

2020-12-07 22:31:02 188 2

原创 JavaScript 知识点补充

JavaScript类型检测typeof适合基本类型和函数对象 function 的检测,但遇到 null 失效typeof [1,2] //‘object’typeof NaN //‘number’typeof null //‘object’instanceof(基于原型链判断)常用于判断对象类型,适合自定义对象【注】不同window或iframe间的对象类型检测不能使用 instanceof[] instanceof Array //truenew O

2020-12-04 21:48:09 118

原创 CSRF攻击

一、什么是CSRF攻击CSRF(Cross-site request forgery)跨站请求伪造:攻击者诱导受害者进入第三方网站,在第三方网站中,向被攻击网站发送跨站请求。利用受害者在被攻击网站已经获取的注册凭证,绕过后台的用户验证,达到冒充用户对被攻击的网站执行某项操作的目的。二、常见类型GET类型的CSRFPOST类型的CSRF...

2020-11-28 18:55:49 81

原创 CSS

BFC块格式化上下文(Block Formatting Context,BFC) 是Web页面的可视CSS渲染的一部分,是块盒子的布局过程发生的区域,也是浮动元素与其他元素交互的区域。BFC相当于一个隔离的独立容器,里面的子元素不会影响到外面的元素,反之也一样。下列方式会创建BFC:根元素(<html>float 不为 noneposition 为 absolute 或 fixeddisplay 为 inline-block、table-cell、 table-ca

2020-11-27 20:25:52 138

原创 XSS攻击

一、什么是XSS攻击跨站脚本攻击(Cross-site scripting,XSS)是一种注入型攻击,攻击者通过在目标网站上注入恶意的脚本,使之在用户的浏览器上运行。利用这些脚本,攻击者可获取用户的敏感信息,如Cookie、SessionID等。XSS的本质是:恶意代码未经过滤,与网站正常的代码混在一起,浏览器无法分辨哪些脚本是可信的,导致恶意脚本被执行。在处理输入时,以下内容都不可信:来自用户的UGC信息(UGC,即用户生成内容)来自第三方的链接URL参数POST参数Referer(可

2020-11-23 23:13:17 278 1

原创 如何减少页面加载时间(前端性能优化)

如何减少页面加载时间1、减少重复的HTTP请求(1)减少调用其他页面、文件的数量;(2)在使用css格式时,常会采用background载入图形文件,而每个background的图像都会产生1次HTTP 请求,为了让页面生动活泼大量使用background来加载背景图,可以采用css的1个有用的background-position属 性来加载背景图加以改善,将需要频繁加载的多个图片合成为1个单独的图片,加载时采用:background:url(…) no-repeat x-offset y-offs

2020-11-22 23:41:52 3617 2

原创 HTTP2、HTTP1.1

HTTP2 相比 HTTP1.1 有如下几个优点:解析速度快HTTP2 是基于帧的协议,每个帧都有表示帧长度的字段,解析速度快。而服务器解析 HTTP1.1 的请求时,必须不断地读入字节,直到遇到分隔符 CRLF 为止。多路复用HTTP1.1 如果要同时发起多个请求,就得建立多个 TCP 连接,因为一个 TCP 连接同时只能处理一个 HTTP1.1 的请求。在 HTTP2 上,多个请求可以共用一个 TCP 连接,这称为多路复用。同一个请求和响应用一个流来表示,并有唯一的流 ID 来标识。 多个

2020-11-22 23:09:15 436

原创 js实现隔一秒打印数字

var自执行for(var i=1;i<100;i++){ (function(i){ setTimeout(() => { console.log(i); }, 1000*i); })(i) }let块级作用域for(let i=1;i<100;i++){ (function(){ setTimeout(() => { co..

2020-11-21 22:10:52 1054

原创 重绘和回流

1 重绘和回流html 页面加载时发生了什么1、解析HTML,生成DOM树,解析CSS,生成CSSOM树2、将DOM树和CSSOM树结合,生成渲染树(Render Tree)3、Layout(回流):根据生成的渲染树,进行回流,得到节点的几何信息(位置,大小)4、Painting(重绘):根据渲染树以及回流得到的几何信息,得到节点的绝对像素5、Display:将像素发送给GPU,展示在页面上。render tree中每个节点(NODE)都有自己的style,而且render tree只包含

2020-11-21 22:07:14 222

原创 计算机网络

浏览器输入url到页面响应的过程大致可分为三步:一、DNS解析URL对应的IP地址首先浏览器应先检查

2020-11-21 22:03:12 252

原创 WWW-URL-HTTP

万维网 WWW1 万维网概述万维网WWW(World Wide Web)并非某种特殊的计算机网络。万维网是一个大规模的、联机式的信息储藏所,英文简称Web。万维网是一个分布式的超媒体(hypermedia)系统,它是超文本(hypertext)系统的扩充。所谓超文本是指包含指向其他文档的链接的文本(text)。万维网以客户服务器方式工作。客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所需的万维网文档。在一个客户端主窗口上显示出的万维网文档称为页面(page)。2 统一资源定位符 U

2020-11-21 17:31:14 1006

原创 Vue-cli 安装及介绍

Vue-cli 安装1、在node环境下安装cnpm install vue-cli -gcnpm:淘宝镜像(cnpm / npm 都可,cnpm一般比npm快)-g:全局安装2、查看安装版本注意是大写的V(小写的v无效)vue -V3、初始化vue init webpack vuecliTestwebpack为模板名称,其余模板有webpack-simple、browserify、browserify-simple、simple进入文件夹cd vuecliTest

2020-11-14 20:55:25 257

原创 厚积

VUE- delimiters改变插值的符号。通常情况下都是双大括号{{}},但可根据需求修改此插值的形式。如:${num}可在构造器中添加delimiters:['${','}']此时插值形式变成了${},代替了{{ }}

2020-11-14 15:48:28 101

原创 平时积累

CSS z-index 属性z-index 属性设置元素的堆叠顺序。拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面。Z-index 仅能在定位元素上奏效(例如 position:absolute;)!

2020-11-09 21:33:00 194

原创 CSS3动画-案例实战

1 设计图形设计菱形利用旋转rotate属性,正方形旋转45°即得菱形,但要保证原本图形为正方形<body> <style type="text/css"> #box{ margin: 100px; width: 150px; height: 150px; background: #93FB40; box-shadow: 2px 2px 2px #999; tra

2020-11-07 19:30:51 339

原创 CSS3动画

1 设计变形动画CSS3变形包括3D变形和2D变形,3D变形使用基于2D变形的相同属性,实现网页对象的旋转、缩放、平移和倾斜等操作。1.1 设置变形原点CSS变形的原点默认为对象的中心点 (50% 50%) ,使用 transform-origin 属性可以重新设置新的变形原点。transform-origin取值说明:<percentage>:用百分比指定坐标值。可为负值<length>:用长度指定坐标值。可为负值left:指定原点的横坐标为leftright:指

2020-11-05 21:53:09 256

原创 高频手撕算法题

输出数组中出现次数最多的字母前数字的和(mt)(emmm不知道思路有没有想复杂了…)var arr=[1,4,6,'a','c','e',4,'a',6,7,'c','c'];var more=new Map;//利用哈希表找出出现次数最多的字符var s;var sum=0;for(var ele of arr){ if((typeof ele)=="string"){ if(more.has(ele)) more.set(ele,more.get(ele)+1).

2020-10-28 23:38:51 192

原创 5-字符串

1.字符串基础通过String构造函数构造的字符串与字符串直接量的类型不同。前者为引用对象,后者为值类型的字符串。var s1=new String('1'); //构造字符串var s2='2'; //定义字符串直接量console.log(typeof s1); //objectconsole.log(typeof s2); //string...

2020-10-22 22:58:45 3948

原创 字节前端

2020.09.06 字节前端笔试单项选择 3*9不定项选择 2*9编程题 55 3道font-size: 2emem 值的大小是动态的。当定义或继承font-size属性时,1em等于该元素的字体大小。如果你在网页中任何地方都没有设置文字大小的话,那它将等于浏览器默认文字大小,通常是16px。所以通常1em = 16px。2em = 32px。 如果你设置了body元素的字体大小为20px,那1em = 20px、2em = 40px。那个2就是当前em大小的倍数。em可以自动适应用户的

2020-10-21 16:00:55 510

原创 滴滴前端

2020.09.13 滴滴笔试(前端研发试卷)单项选择 3*20编程题 20*2单项选择性能量度(performance meas)【模型的评估】正确率: 分类正确的个数 / 总的样本数错误率: 分类错误的个数 / 总的样本数查准率/精度: 预测出正例的有多少正确的查全率/召回率: 预测正确的正例占总正例的比例HTML5新增的input的type类型color ——拾色器date ——日期datetime ——日期(UTC时间)datetime-local

2020-10-21 16:00:04 372

原创 百度前端

2020.09.14 百度笔试(Web前端研发试卷)单选 9多选 11编程 3JSON.Stringify方法JSON 通常用于与服务端交换数据。在向服务器发送数据时一般是字符串。我们可以使用 JSON.stringify() 方法将 JavaScript 对象转换为字符串。JSON.stringify(value[, replacer[, space]])JSON 不能存储 Date 对象。JSON.stringify() 会将所有日期转换为字符串。JSON 不允许包含

2020-10-21 15:59:43 935

原创 4-数组-案例实战

扩展数组扩展数组一般通过为Array 对象定义原型方法来实现,这些原型方法能被所有数组继承。Array.prototype.hello=function(){ console.log("hello!")}var a=[1,2,3]var b=[]a.hello()b.hello()//结果://hello!//hello!【例】为数组扩展一个求所有元素之和的方法Array.prototype._sum=Array.prototype.sum|| //检测是否存在同名方法

2020-10-09 23:50:12 889

原创 4-数组

遍历数组foreach()for-in 语句结构Object.keys() 方法数组的某个位置是空位,与某个位置是undefined不一样。若是空位,使用数组的foreach() 方法、for-in结构以及Object.keys() 方法进行遍历,空位都会被跳过。使用Array判断数组Array.isArray() 判断一个值是否为数组增删数组1.push() —在尾部添加元素【用 push() 方法合并两个数组:Array.push.apply(arr1,arr2)】2

2020-10-09 11:36:01 236

原创 3-编程练习

杨辉三角var n=7;function ret(x,y){ if((y==1)||(y==x+1)) return 1; return ret(x-1,y-1)+ret(x-1,y); //通过递归算法求指定行和列的值}for(var i=0;i<n;i++){ for(var j=1;j<=i+1;j++){ console.log(ret(i,j));//调用求值函数,输出每一个数字 } console.log("<br

2020-10-08 15:28:46 160

原创 3-JavaScript程序结构设计

循环结构while语句do-while语句for语句for-in语句for-in语句能够枚举对象内的所有可枚举的属性,包括原生属性和继承属性跳转结构跳转语句主要包括标签、break、continue、return标签语句在JavaScript中,任何语句都可以添加一个标签,如 label:statements在下面代码中,b就是标签名,a是对象的属性名b:{ a:true}标签名和属性名都属于标签范畴,不能重名对象属性的标识名可以访问属性,如下var o={

2020-10-08 15:03:59 115

原创 2-编程练习

编写一个求和函数sum()function sum() { var result=0; for(var i=0;i<arguments.length;i++){ result+=parseFloat(arguments[i])||0;//去除非数字参数 } return result.toFixed(3)/1;//去掉溢出小数}var a=sum(1,2,3,4,5);var b=sum(0.1,0.2,false,true,'a','F',6)

2020-10-08 10:39:08 172

原创 2-基本语法

变量声明变量undefined— 声明但未赋值JavaScript允许未声明就直接为变量赋值,JavaScript会将其视为全局变量,函数外代码可访问该变量的值使用var语句声明的变量是永久的,不能用delete删除var语句的使用范围有限,不能在循环或条件语句的条件表达式中使用,但能在for或for-in语句的条件表达式中使用赋值变量变量提升只对var命令声明的变量有效,若变量不是var声明的,就不会发生变量提升var a;console.log(a);a=1;显示结果是

2020-10-07 21:45:10 88

空空如也

空空如也

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

TA关注的人

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