自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 vue-router以及导航守卫的应用(前端路由的概念)

目录前端路由&&后端路由后端路由前端路由vue-router上手嵌套路由路由的懒加载导航守卫完整的导航守卫解析流程全局守卫路由独享守卫组件局部守卫前端路由&&后端路由路由的功能包括路由(映射)和转发后端路由后端渲染:相当于把url地址传给服务器,而服务器会根据html+css+后端语言进行网页渲染,然后再返回前端,内容包括HTML+css,当然是包含数据的HTML。后端路由的步骤:1:一个页面有对应.

2021-12-08 22:19:34 916 1

原创 Linux命令指南

整理之前的笔记,当时是用记事本写的2020.10.29标题带#为重点,在服务器运维当中比较常用的基本命令一般而言centOS服务器用的多一点,软件包安装会有很多区别,ubuntu更加适宜个人使用------------------------------------------------------------------------------------------------#文件与文件夹操作***查看命令的简单说明 whatis xxx查看命令的位置 whick/where

2021-12-08 12:11:16 467

原创 Linux笔记

目录基础命令Linux的用户权限操作文件权限Linux的文件系统环境变量Linux的文件寻找与压缩打包基础命令我的Linux笔记(1) - Tron ' blogls 显示当前目录下的目录与文件cd 与win相同pwd 显示目前所在的目录touch 创建一个文件rm 删除一个文件按键 作用Ctrl+d 键盘输入结束或退出终端Ctrl+s 暂停当前程序,暂停后按下任意键恢复运行Ctrl+z 将当前程序放到后台运行,恢复到前台为命令fgCtrl+.

2021-12-08 12:01:37 821

原创 nosql之mongodb

转自个人网站:noSQL学习之MongoDB(1) - Tron ' blognoSQL学习之MongoDB(2) - Tron ' blogMongoDB是非关系型数据库中的文档数据库文档数据库一般用类JSON格式存储数据,存储的内容是文档型的。这样也就有机会对某些字段建立索引,实现关系数据库的某些功能,但不提供对参照完整性和分布事务的支持。 ——摘自GitHubSQL MongoDB 解释(SQL/MongoDB)database database 数据库/数据库table collec

2021-12-08 11:53:51 480

原创 vue的使用

目录简介安装目录结构起步模板语法条件语句循环语句计算属性监听属性样式绑定事件监听表单组件组件自定义事件自定义指令简介Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的渐进式框架。Vue 只关注视图层, 采用自底向上增量开发的设计。Vue 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。安装npm install vue安装脚手架工具(命令行工具)..

2021-12-07 16:36:45 1095

原创 bootstrap的使用与less源码解析(框架自定义)

目录容器流体容器固定容器栅格系统(网格容器)三种的源码解析(需要less基础)栅格系统实例响应式工具源码解析栅格盒模型的设计巧妙之处对less的复习Bootstrap 是基于 HTML、CSS、JAVASCRIPT 的,它简洁灵活,使得 Web 开发更加快捷。它是一个响应式的开发框架容器流体容器<div class="container-fluid">test</div>意为width等于百分之百,也就是...

2021-12-05 10:10:49 429

原创 express的使用

Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具。使用 Express 可以快速地搭建一个完整功能的网站。Express 框架核心特性: 可以设置中间件来响应 HTTP 请求。 定义了路由表用于执行不同的 HTTP 请求动作。 可以通过向模板传递参数来动态渲染 HTML 页面。 上手:var express = require("express");var app

2021-12-04 19:58:05 1490 1

原创 node.js(回调函数,事件循环,模块系统,路由,文件系统,post/get请求)

目录NPM使用node.js REPLnode.js 回调函数node.js事件循环node.js EventEmitternode.js Buffer(缓冲区)node.js Steamnode.js模块系统node.js函数node.js路由node.js全局对象node.js常用工具node.js的文件系统node.js post/get工具模块node.js web模块node.js是基于v8引擎(chrome 8)的一个事..

2021-11-29 21:38:28 791

原创 JavaScript的事件循环

单线程是JavaScript的一大特点之所以是单线程,是因为在JavaScript与用户互动,操作dom的时候,如果是多线程(我们同时两个线程对一个dom操作了修改和删除命令,那么该操作的结果遵循的是哪个线程?)会引发很多麻烦的同步问题。因为是单线程,所有的任务都需要排队。前一个任务结束后才可以执行下一个任务,而后续的任务会不得不“排队”。在我们进行i/o交互的时候,等待时间是非常长的,该段时间的cpu是空闲出来的。因而引出了任务队列所有的任务可以分为两种,一种是同步任务,一种是异步任务

2021-11-28 21:24:31 432

原创 jQuery

参考:(jQuery的类css选择器)jQuery 选择器 | 菜鸟教程(jQuery的事件方法)jQuery 事件方法 | 菜鸟教程(jQuery的css方法)jQuery HTML / CSS 方法 | 菜鸟教程(jQuery的Ajax方法)jQuery AJAX 方法 | 菜鸟教程目录jQuery语法jQuery选择器元素选择器#id选择器.class选择器jQuery事件jQuery效果显示隐藏淡入淡出滑动jQuery动画停止.

2021-11-28 09:58:07 347

原创 Ajax懒加载

之前了解Ajax技术是在做python爬虫的时候,有的web站点会使用该技术来实现不刷新页面的情况下更新数据,为了实现对目标站点的爬取,需要截取页面xhr更新的json数据。AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。AJAX 不是新的编程语言,而是一种使用现有标准的新方法。AJAX 最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。AJAX 不需要任何浏览器插件,但需要用户允许

2021-11-27 10:33:05 434

原创 Css预处理之Less语法特性全指南

目录认识lessless初体验less变量变量插值less选择器less urlless importless属性Less 变量名称延迟加载less导入less的命名空间和访问器less拓展拓展附加到选择器拓展内部规则集拓展嵌套选择器less的嵌套规则less混和less不输出mixinsmixins中的选择器mixin的命名空间less保护的命名空间less混合参数less mixins具有多个参数less

2021-11-25 19:42:54 1828

原创 JavaScript对DOM,BOM的操作

HTML DOM 是 HTML 的标准对象模型和编程接口。HTML DOM 是关于如何获取、更改、添加或删除 HTML 元素的标准。demo:<html><body><p id="demo"></p><script>document.getElementById("demo").innerHTML = "Hello World!";</script></body></html&

2021-11-24 22:27:02 645

原创 JavaScript函数,闭包,对象,类,原型链

JavaScript函数:在 JavaScript 中,函数是对象的方法。var person = { firstName:"Bill", lastName: "Gates", fullName: function () { return this.firstName + " " + this.lastName; }}person.fullName();在该实例中,fullname是person对象的一个方法。函数call方法:.

2021-11-24 11:01:15 518

原创 Css(层叠样式表)的浮动布局,定位布局,display&visibility,盒子模型与定位,Flex布局

浮动布局块的默认的布局为流式布局,其无论你宽度设置为多少,均不会使其排列在一个块元素的后方,造成空间浪费为了实现对布局的要求,我们需要让块浮动起来,需要对float属性进行设置。在对float属性均设置成left后,如果宽度可以容纳,则会自动向后补充。浮动的元素不再区分块级元素、行内元素、已经脱离了标准文档,一律能够设置宽度和高度BFC规范(Box-Formatting Context 块级格式化上下文)是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素,反之亦然

2021-11-23 22:05:52 318

原创 JavaScript的函数,其他知识点(函数式编程思想,JavaScript的数据类型,拓展运算符)

JavaScript arguments:arguments可以在函数不指定参数的情况下返回用户所传递的参数demo:function sayHi() { if (arguments[0] == "bye") { return; } alert(arguments[0]);}也可以使用arguments.length来返回用户传递的参数个数利用该一特性可以实现对函数的重载。demo:function doAdd() { if(arguments.l

2021-11-19 19:29:45 485

原创 动态规划的简单进阶

剑指 Offer 49. 丑数我们把只包含质因子 2、3 和 5 的数称作丑数该句话的意思是这个数的质因子只能有2,3,5.因而进行数学推广可以得知大数值的丑数一定是某一个丑数的2,3,5的倍数,抽象成动态规划的状态转移方程为:dp[i]=dp[x]*2/3/5.该题的难点在于得知初始状态是1的情况下如何进行状态转移不遗漏掉数,方法为使用a,b,c三个指针来确定2,3,5×过的数在dp数组中的位置。(理解为一个丑数可以推广为三个丑数,分别是×2,3,5,这是由性质得到的。我们每次去ax2,b

2021-11-18 22:26:15 308

原创 搜索与回溯算法

剑指 Offer 38. 字符串的排列该题是经典的字符串全排列该题通过思考可以明白,字符在排列的时候,每一个位的字符只能使用一次,例如在首位考虑多个可能性的时候,首位一变更后,原先的首位应出现在后。图片来源:力扣该图为使用深度优先搜索思路并且添加了剪枝的思路。定义一个深度优先搜索函数,参数x为当前进行排列的第几位,回溯条件即为x等于字符串的最后一个字符,条件满足往结果添加当前排列好的字符串。剪枝的思路运用到代码里是使用set集合来存储使用过的字符串,当字符串中有重复字符的时候..

2021-11-18 21:55:49 363

原创 滑动窗口与队列

滑动窗口的模板:let left = 0, right = 0; while (right < s.size()) {` // 增大窗口 window.add(s[right]); right++; while (window needs shrink) { // 缩小窗口 window.remove(s[left]); left++; }}我认为滑动窗口的关键点在于移动右指针时的各种操作,..

2021-11-12 20:58:07 557

原创 有关模拟的算法题型

剑指 Offer 62. 圆圈中最后剩下的数字该题是著名的约瑟夫环问题,可以使用动态规划来解决,它是有数学规律的。f(n)可以由f(n-1)推出,图片转自LeetCode我们在第八次与第七次进行分析,在第八次删除掉c以后会从d开始,而在第七次补充上c以后,需要右移m即可与第八次一致,推广出:(f(n-1)+m)%n = f(n),说明约瑟夫环问题只要得知m的值,n值只需要循环进行计算就可以递归得出,因为m有可能大于n,所以会进行求余操作。必有f(1)=0code:/**.

2021-11-11 21:00:19 253

原创 有关数学的算法题(摩尔投票,贪心算法,滑动窗口双指针)

剑指 Offer 39. 数组中出现次数超过一半的数字该题因为涉及到计数问题,所以一定是可以用哈希表解决的。优化方法是使用摩尔投票法,我们假设当前的数即为众数并且权重加一,之后如果不相等则权重减一,权重为0时重新定义当前数为众数,重复前面的操作。因为众数的个数是大于数组的一半的,所以无论怎么去操作,最后权重一定是大于0的,一定可以找到众数。/** * @param {number[]} nums * @return {number} */var majorityElement =

2021-11-04 17:54:12 228

原创 LeetCode位运算

摘自菜鸟教程^可以利用实现相加并且不进位(a^b 为a+b在不考虑进位的情况下)&可以实现地板除以2,实现进位(a&b <<1 为a+b的进位)剑指 Offer 65. 不用加减乘除做加法在该题不允许使用加减乘除,因此使用位运算,在我们^得到不进位的情况下加上&<<1就是+号的效果。但是要注意在进位情况下,想要添加上进位效果又要使用+号,因此需要再次进行不进位+进位,当进位的值被一直^到0以后,就可以实现加法思路:c = ...

2021-11-03 23:58:35 187

原创 分治算法的题型以及与动态规划的区别

动态规划属于是分治算法的一种,而不同的是分治算法在大部分情况下是自顶向下进行求解,将问题分解为各个小问题再合并,而动态规划大部分是定义dp数组,求解小问题后进一步自底向上进行求解大问题。分治算法步骤:1>分解:将原问题分解为各个小问题。2>求解:如果可以简单的进行求解则解出来,否则再次进行1>分解。3>合并:将各个子问题合并为原问题最终解。动态规划步骤:1>状态定义2>状态转移方程3>初始状态4>返回值动态规划的三个特征:1最优子结

2021-11-03 16:37:27 351

原创 深度优先搜索进阶(DFS二叉树的深度问题,最近祖先问题)

剑指 Offer 55 - I. 二叉树的深度使用递归注意在回溯时的返回即可,返回值应为:左子树的深度与右子树的深度最大值加上1,因为在到最底下时左右都为空则为1,一步一步回溯即可。/** * Definition for a binary tree node. * function TreeNode(val) { * this.val = val; * this.left = this.right = null; * } *//** * @param {TreeN

2021-11-02 09:22:35 156

原创 排序算法的简单进阶(快速排序算法,获取中位数的双指针写法)

剑指 Offer 61. 扑克牌中的顺子图片源自:力扣该题的关键在于找到扑克牌连子的规律,如果五张牌连着,在不考虑癞子牌的情况下无论如何都应是最大牌减最小牌为4。如果再去掉癞子并且不考虑重复牌的情况下,应该是小于5(比如00125,00235无论怎样都会是小于五,因为没有重复牌的情况下,最多会有两个癞子,如果满足链子的情况下,只要其最大减最小会小于五,加上癞子总会满足情况)使用集合来确认有重复牌直接return false;设牌最小为14,牌最小为0,方便确定最大牌点数与最小牌点数.

2021-11-01 17:51:05 161

原创 html5的表单验证

html5表单新增的类型:邮箱验证:email网址验证:url电话号码验证:tel数字验证:number查找:search日期选择:date选择周:week选择月:month日期和时间:datetime 非本地时间日期和时间:fatetime-local 本地时间颜色:color范围值:range文本框中,输入一次,下一次会自动提示的属性为autocomplete初始化页面后,让第一个输入框为焦点的属性为autofocus设置表单元素必须填写的属性为required设置表单验证使用正.

2021-10-24 17:06:49 417

原创 搜索与回溯算法:DFS(深度优先搜索)

深度优先搜索:1.确定回溯终止条件2.重复生成其他可能我的LeetCode题解:力扣,剑指 Offer 12. 矩阵中的路径力扣,剑指 Offer 13. 机器人的运动范围------------------------------------剑指 Offer 12.矩阵中的路径根据题目分析要找到矩阵中与word字符串第一个值相同的下标,并利用下标进行dfs匹配word字符串后面的单词是否一致。首先有两层循环来寻找与word第一个值相等,并将i,j,k传递给dfs(k为字符.

2021-10-24 14:09:19 1760

原创 动态规划的算法题型总结

动态规划(DP 即 Dynamic Programming)理解为将一个大问题拆分为一堆小问题,并且这些小问题不会被重复的计算。动态规划分为自顶向下top-down(递归时间复杂度以斐波那契数为例n^h-1,空间复杂度为n)和自底向上bottom-up(效率高,最优解,一般一维dp使用滚动数组来优化)。动态规划的解题步骤:1:状态定义(定义dp数组)2:转移方程(拆分问题确定dp数组自底向上的转移方程)3:初始状态(确定最开始底部的dp数值):4:返回值(返回dp数组当中的哪一个值为最终结果

2021-10-23 14:37:33 439

原创 剑指 Offer 26. 树的子结构(判断是否为一个数的子树)

剑指 Offer 26. 树的子结构判断b树是否为a树的子树,首先需要先应用一个先序遍历来寻找与b树根结点相同的a树的子结点,之后再进姓递归判断每一册是否相同。该题难点在于递归,掌握以后应该关于树的子结构题可以通杀。图片转自:力扣先进性先序遍历(直接利用原题的函数进行遍历就可以),在遍历的时候添加上条件即可(利用python特性可以实现一行判断)。递归永远先写终止递归进行回溯的条件,该题终止递归的条件为b树无根结点(即B为空)因为要判断b树的根结点是否与a树的当前节点相同所.

2021-10-18 23:50:46 134

原创 二叉树镜像的题:剑指 Offer 28. 对称的二叉树,剑指 Offer 27. 二叉树的镜像

剑指 Offer 27. 二叉树的镜像和广度优先搜素的思路一样,一定是会遍历所有的节点的,但是因为要输出的是二叉树的镜像,所以在遍历的时候,需要将左右结点做一个交换的处理,这样就可以保证输出的为二叉树的镜像。(每一层都进行左右结点交换处理之后添加进队列当中)依然是开头先新建一个队列,并且添加根结点进队列。(感觉和广度优先搜索二叉树没有区别,只是多了一步)import collectionsclass Solution: def mirrorTree(self, root: TreeN

2021-10-18 23:14:58 120

原创 队列+广度优先搜索(bfs)剑指 Offer 32 . 从上到下打印二叉树

python当中collections有一个deque双向队列,其popleft()可以实现从队列中出时间复杂度为o(1)剑指 Offer 32 - I. 从上到下打印二叉树直接使用队列,初始队列中为root,为从左到右便利则依次往队列中添加二叉树的节点即可,当队列为空则证明便利结束加一个节点利用popleft()队列出一个import collectionsclass Solution: def levelOrder(self, root: TreeNode) -> Li

2021-10-18 22:37:30 86

原创 双指针与二分法的应用:剑指 Offer 04. 二维数组中的查找,剑指 Offer 11. 旋转数组的最小数字

剑指 Offer 04. 二维数组中的查找由题意可以得知一个n x m的矩阵,性质是自上往下自左往右均为递增。需要查找到目标值,由题意将矩阵旋转45度可以发现从右上角开始向下为递增,向左为递减,由此可以用双指针判断目标值的大小,根据情况写判断即可class Solution: def findNumberIn2DArray(self, matrix: List[List[int]], target: int) -> bool: i,j = len(matrix)-

2021-10-18 22:04:55 53

原创 剑指 Offer 35. 复杂链表的复制

剑指 Offer 35. 复杂链表的复制图片转自力扣该题在复制时的难点是新链表创建之后,random指针是无法指向未进行创建的节点的在想到新链表可以进行哈希映射关系后,先循环生成旧链表与新链表的映射关系,再循环对next和random进行赋值即可要注意在对next和random进行赋值时不能使用直接dict[].random的方式获得,因为题目说过可能指向null值class Solution: def copyRandomList(self, head: 'Node'..

2021-10-13 15:08:09 40

原创 剑指 Offer 06. 从尾到头打印链表,剑指 Offer 24. 反转链表

两个题均为递归算法的应用剑指 Offer 06. 从尾到头打印链表图片来源:https://leetcode-cn.com/problems/cong-wei-dao-tou-da-yin-lian-biao-lcof/solution/mian-shi-ti-06-cong-wei-dao-tou-da-yin-lian-biao-d/直接使用题目给定的函数进行递归,注意写递归时先写终止递归的判断条件并且return开始回溯 def reversePrint(self, hea

2021-10-13 15:00:57 67

原创 python十一行代码实现御剑扫描器功能

转自个人博客:python之十一行代码实现御剑扫描器功能 - Tron ' blog代码为两年前所写,现在看来没有使用多线程等各种方法,单纯扫描速度会非常慢python的强大之处在于其的简洁今天看了表哥rock以前给推的requests库的文档看到有status_code此对象方法可以返回响应状态码requests库自己带了一个方便判断页面是否正常返回的内置状态码查询对象requests.codes.ok二者配合判断可以实现对页面返回的布尔值判断,可以配合if函数使用r = reque

2021-10-11 17:24:11 317

原创 python爬虫之爬取拉勾网职位数据

转自个人博客:python爬虫之爬取拉勾网职位数据 - Tron ' blog利用对json的数据解析并保存到Excel文件完成爬虫目标通过对请求的分析发现是一个post请求获取json数据然后才返回信息,所以可以直接获取json完整代码已放GitHubGitHub - Tron521/lagouspider: 获取职位信息spider...

2021-10-11 17:20:48 583

原创 python爬虫之爬取知乎发现

源码已放GitHub:zhihuexplore此次使用到的库有四个请求+解析urljoin为urllib库里面的一个整合相对链接的方法可以对链接进行一个合并利用了beautifulsoup的正则表达式查找首先分析目标可以看到每一个问题的链接都会有/question这个相对目录,而每一个专题则是/special这样可以进行正则表达式的构造:^/question可以非常快速的进行定位question_regex = re.compile(r"^/question")special_r

2021-10-11 17:19:28 217

原创 python的命令行写法

转自个人博客:python的命令行写法 - Tron ' blogimport sysaddr = str("http://"+sys.argv[1])python自带模块sys有一个获取命令行参数的功能argv为从命令行获取的被当做一个可以迭代的属性argv[0]为当前执行python的文件名,向依次递增高级命令行写法:argparsedemo1:import argparseparser = argparse.ArgumentParser(description =

2021-10-11 17:17:34 818

原创 python爬虫之ajax技术

转自个人博客python爬虫之ajax技术 - Tron ' blog​​​​​​Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种创建交互式、快速动态网页应用的网页开发技术,无需重新加载整个网页的情况下,能够更新部分网页的技术。通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。——百度百科发送 Ajax 请求到网页更新的这个

2021-10-11 17:16:10 237

原创 python爬虫之微博爬虫

weibospider源码已放GitHub利用ajax爬取没有反爬机制的触屏版转自个人博客:python爬虫之微博爬虫 - Tron ' blog

2021-10-11 17:14:51 334

空空如也

空空如也

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

TA关注的人

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