自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

刘烟火的博客

持续不断地学习才能进步,一起加油

  • 博客(34)
  • 收藏
  • 关注

原创 web scraper的简单使用记录

文章目录功能优缺点案例说明安装爬取当前页二级页面爬取多页(分页)参考(学习教程)Web Scraper是一款用于抓取网页数据的 Chrome 插件,只需通过简单的点选操作即可完成抓取配置,无需编写代码。功能就说说我使用时,他能够实现的那些具体功能吧。能够实现网页内的信息抓取。可以自动识别相同结构的dom节点。可以模拟滚动或者点击,获取多页面的信息。包括分页的情况和子页面的情况。快速导出信息。优缺点优点缺点操作简单,无需写代码。自动识别dom,无需人工手找。不适合

2020-11-07 20:17:34 310

原创 算法与数据结构砍柴路--位运算

运算运算符举例或|0011------0110------0111与&0011------0110------0010异或^同则0, 异则1按位取反~0则1,1则0~x = -x -1判断奇偶 x & 1 , 结果为1 表示奇,结果为0表示偶x & (x-1) ,将最低位的1变为0x & (-1<<n) 将x最右遍的n清零(x>>n)&1,获取第n位的值x|(1&lt...

2020-10-31 20:23:03 175 1

原创 Practice Leetcode 1304. 返回和为零的N个唯一整数

给你一个整数 n,请你返回 任意 一个由 n 个 各不相同 的整数组成的数组,并且这 n 个数相加和为 0 。示例 1:输入:n = 5输出:[-7,-1,1,3,4]解释:这些数组也是正确的 [-5,-1,1,2,3],[-3,-1,2,-2,4]。示例 2:输入:n = 3输出:[-1,0,1]示例 3:输入:n = 1输出:[0]提示:1 <= n <= 1000来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems

2020-10-31 19:29:03 209

原创 Practice Leetcode 1143. 最长公共子序列

给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列的长度。一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。例如,“ace” 是 “abcde” 的子序列,但 “aec” 不是 “abcde” 的子序列。两个字符串的「公共子序列」是这两个字符串所共同拥有的子序列。若这两个字符串没有公共子序列,则返回 0。示例 1:输入:text1 = “abcde”, text2 = “ace”

2020-10-25 15:59:13 177

原创 Practice Leetcode 152. 乘积最大子数组

给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。示例 1:输入: [2,3,-2,4]输出: 6解释: 子数组 [2,3] 有最大乘积 6。示例 2:输入: [-2,0,-1]输出: 0解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/maximum-product-subarray思路1:clas

2020-10-25 15:58:33 130

原创 Practice Leetcode 120. 三角形最小路径和

给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 + 1 的两个结点。例如,给定三角形:[[2],[3,4],[6,5,7],[4,1,8,3]]自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/triangle思路:动态规划 自底向上def mi

2020-10-25 15:57:26 103

原创 Practice Leetcode 63. 不同路径 II

一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格中的障碍物和空位置分别用 1 和 0 来表示。说明:m 和 n 的值均不超过 100。示例 1:输入:[[0,0,0],[0,1,0],[0,0,0]]输出: 2解释:3x3 网格的正中间有一个障碍物。从左上角到右下角一共

2020-10-25 15:56:36 187

原创 Practice Leetcode 62. 不同路径

一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?例如,下图是一个7 x 3 的网格。有多少可能的路径?示例 1:输入: m = 3, n = 2输出: 3解释:从左上角开始,总共有 3 条路径可以到达右下角。向右 -> 向右 -> 向下向右 -> 向下 -> 向右向下 -> 向右 ->

2020-10-25 15:55:29 105

原创 Practice Leetcode 53. 最大子序和

给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/maximum-subarray著作权归领扣网络所有。商业转载请联系官方授权,非商

2020-10-25 15:54:11 73

原创 如何优雅的批量下载m3u8 格式视频

我们去很多网站上 去下载视频,解析出的地址 是m3u8格式视频, 使用 普通的下载方式下载就是一个m3u8文件。里面装的是一段一段的视频。一方面,不做特殊处理播放器可能播放不了,另一方面该格式可能是加密格式。使用普通的方式下载下来,基本播放不了。网上有许多这样的方法,这里我介绍我喜欢的几种方法吧。方法1:使用youtube-dl下载m3u8视频安装 youtube-dl在python环境下,使用pip命令安装pip install youtube-dl,这里需要python环境,没有的可以百度

2020-10-24 18:30:56 14926 1

原创 Practice Leetcode 19. 删除链表的倒数第N个节点

给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list# Definition for

2020-10-23 22:19:52 149 1

原创 Practice Leetcode 11. 盛最多水的容器

给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为&nbs

2020-10-20 17:54:19 148

原创 Practice Leetcode 21. 合并两个有序链表

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/merge-two-sorted-lists思路1:class Solution: def mergeTwoLists(self, l1: ListNod

2020-10-20 17:53:40 90

原创 Practice Leetcode 24. 两两交换链表中的节点

给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例:给定 1->2->3->4, 你应该返回 2->1->4->3.来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/swap-nodes-in-pairs著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。思路1:太复杂了class Solution: de

2020-10-20 17:52:58 93

原创 Practice Leetcode 84. 柱状图中最大的矩形

给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。以上是柱状图的示例,其中每个柱子的宽度为 1,给定的高度为 [2,1,5,6,2,3]。图中阴影部分为所能勾勒出的最大矩形面积,其面积为 10 个单位。示例:输入: [2,1,5,6,2,3]输出: 10来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/largest-re

2020-10-20 17:51:46 174

原创 Practice Leetcode 101. 对称二叉树

给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。1/ 2 2/ \ / 3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:1/ 2 2\ 3 3来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/symmetric-tree方法1:递归class Solution: def isSym

2020-10-20 17:50:39 124

原创 Practice Leetcode 110. 平衡二叉树

给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。示例 1:给定二叉树 [3,9,20,null,null,15,7]3/ 9 20/ 15 7返回 true 。示例 2:给定二叉树 [1,2,2,3,3,null,null,4,4] 1 / \ 2 2/ \3 3/ 4 4返回 false 。来源:力扣(LeetCode)链

2020-10-20 17:49:37 77

原创 Practice Leetcode 142. 环形链表 II

给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意,pos 仅仅是用于标识环的情况,并不会作为参数传递到函数中。说明:不允许修改给定的链表。进阶:你是否可以不用额外空间解决此题?示例 1:输入:head = [3,2,0,-4], pos = 1输出:返回索引为 1 的链表节点解释:链表中有一个环

2020-10-20 17:48:17 120

原创 Practice Leetcode 141. 环形链表

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

2020-10-20 17:47:29 66

原创 Practice Leetcode 155. 最小栈

设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。push(x) —— 将元素 x 推入栈中。pop() —— 删除栈顶的元素。top() —— 获取栈顶元素。getMin() —— 检索栈中的最小元素。示例:输入:[“MinStack”,“push”,“push”,“push”,“getMin”,“pop”,“top”,“getMin”][[],[-2],[0],[-3],[],[],[],[]]输出:[null,null,nul

2020-10-20 17:46:16 110

原创 Practice Leetcode 239. 滑动窗口最大值

给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。进阶:你能在线性时间复杂度内解决此题吗?示例:输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3输出: [3,3,5,5,6,7]解释:滑动窗口的位置 最大值[1 3 -1] -3 5 3 6 7

2020-10-20 17:45:12 43

原创 Machine Learning-梯度下降法

引入(图片来自网络)想象某人处于山上某个位置,要到达山底应该怎么走。首先应当从当前位置找到最陡峭的一个方向(梯度),从该方向往下走一段距离,继续观察,最陡峭的某个方向,走一段举例,重复此过程就可能会到达(接近)山底。那么走多长的距离呢?如果走的距离比较短,那么就很频繁的判断这个陡峭的方向,非常耗时间。如果走了很长距离再来观察判断方向的话,那么就有可能偏离距离。所以,需要一个合适的距离来确保不那么耗费时间又能够走到山底。该方法正是使用了梯度下降的方法。那么什么是梯度下降法呢?什么是梯度下降法(Grad

2020-10-17 23:54:08 233

原创 算法与数据结构砍柴路--深度优先和广度优先

深度优先:深度优先搜索算法(英语:Depth-First-Search,DFS)是一种用于遍历或搜索树或图的算法。这个算法会尽可能深的搜索树的分支。当节点v的所在边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这一过程一直进行到已发现从源节点可达的所有节点为止。如果还存在未被发现的节点,则选择其中一个作为源节点并重复以上过程,整个进程反复进行直到所有节点都被访问为止。广度优先:广度优先搜索算法(英语:Breadth-First Search,缩写为BFS)。简单的说,BFS是从根开始,沿着

2020-09-27 21:38:44 99

原创 算法与数据结构砍柴路--二叉树

文章目录二叉数定义二叉树遍历二叉搜索树二叉数定义二叉树(binary tree)是指树中节点的度不大于2的有序树,它是一种最简单且最重要的树。二叉树的递归定义为:二叉树是一棵空树,或者是一棵由一个根节点和两棵互不相交的,分别称作根的左子树和右子树组成的非空树;左子树和右子树又同样都是二叉树。二叉树遍历前序遍历:根,左,右中序遍历:左,根,右后序遍历:左,右,根给定一个二叉树,返回它的中序 遍历。示例:输入: [1,null,2,3]12/3输出: [1,3,2]来源:力扣(

2020-09-26 19:46:03 86

原创 算法与数据结构砍柴路--回溯和分治

分治说明:在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。解题步骤:分解:将原问题分解为若干个规模较小,相互独立,与原问题形式相同的子问题;解决:若子问题规模较小而容易被解决则直接解,否则递归地解各个子问题;合并:将各个子问题的解合并为原问题的解。解题模板:def func(args): if 终止条件:

2020-09-20 17:57:25 106

原创 如何优雅地下载b站视频

为什么想要下载到本地当我在看b站视频学习的时候,有的地方听不懂需要,反复听,这就需要重新拖动滚动条到不懂的位置或者有些视频需要反复多次看, 在线看就有些不方便。如果下载到本地的话,使用potplayer播放,就可以多开文件播放,加速播放(可超过2倍速),反复观看不占流量。使用何种方式下载视频网络上有很多关于如何从B站上下载视频的方法我使用过的就有唧唧B站视频下载工具bilibili视频下载器解析(嗅探)网址后下载(单个文件)在写这篇文章的时候,1和2方法 好像不能用了(不知道有还能用.

2020-09-12 17:07:39 1682 3

原创 使用picgo + typora + github搭建个人图床

使用picgo + typora + github搭建个人图床为什么使用这种方式? 一个是某些图床收费 , 这种不考虑, 另外免费的图床也不怎么稳定的,经常看见许多博客的图片显示的是破损的图标。采用这种方式不用考虑收费和容量的问题,如果仓库满了,再建一个呗(一般也用不了太大)参考:https://blog.csdn.net/m0_37903882/article/details/105417479说明typroa客户端一个github账号picgo客户端推荐插件(github-plus .

2020-09-05 18:25:30 832

原创 Windows 下安装解压版mysql 及环境配置

本文将介绍如何在windows下安装配置mysql下载安装包配置ini文件并初始化创建mysql服务,启动关闭服务设置密码创建数据库下载安装包去官网下载社区版的版本,https://dev.mysql.com/downloads/mysql/我这里使用的是5.7版本, 5.8有一些新的特性和用法,根据需要进行安装。选择对应的版本下载到本地解压。配置ini文件并初始化解压后在目录下新建my.ini文件,内容如下[mysql]default-character-set=.

2020-09-05 08:47:29 471

原创 Mysql 分组查询top n(多种方法)

情况说明查询每门科目的前3名。对于查询的结果,一般有两种情况。表所有数据为:情况1:对于分数相同的人,其后面的人 紧跟着名次排,直到排够名次3,就不再往后取了。情况2:对于分数相同的人,若当前相同名次的人数大于或等于 3, 则相同分数其后面的人不再参于top3了。在情况2中 ,为什么”李四 - java“ 这行没有了呢?可以这样理解,在情况2中相当于使用了名次空缺, 分数相同的人其后面那个人,的名次为 前面的人数+1 , 这里的 ”李四-java“这行,他的名次应当是 5 , 所有to.

2020-08-30 20:53:30 2987

原创 python 操作excel(附案例)

常见读写excel 的库有以下 几个(附案例)xlwtxlrdxlutilsopenpyxlpandasxlwt主要用于对xls文件进行写入操作import xlwt#创建workbook book = xlwt.Workbook()#添加sheet页table = book.add_sheet('Over', cell_overwrite_ok=True)sheet = book.add_sheet('测试表')print(type(table))print(tabl

2020-08-23 21:45:27 1706

原创 python 爬虫(二)- 解析库 的简单使用

当我们在获取到网页相应内容的时候, 就会使用去解析它 过滤得到想要的内容正则relxml 库Beautiful SouppyqueryJsonPath示例响应内容http://quotes.toscrape.com/ 截取部分内容, 以下所有例子将以这个响应内容来示范, 假设响应的内容字符串 定义为一个变量 content一、正则re使用python 中内置的模块 re正则模块如解析页面 上所有的名人的名字:import repat = re.compile(

2020-08-23 19:04:53 213

原创 python 爬虫(一)- 请求库urllib 和requests

urllib 介绍官网urllib 是一个收集了多个涉及 URL 的模块的包urllib.request 打开和读取 URLurllib.error 包含 urllib.request 抛出的异常urllib.parse 用于解析 URLurllib.robotparser 用于解析 robots.txt 文件import urllib.requestimport reimport ssl#若报错:unable to get local issuer certificate(⽆法

2020-08-13 08:15:59 417

原创 带你了解可迭代对象、迭代器、生成器

可迭代的对象使用 iter 内置函数可以获取迭代器的对象。如果对象实现了能返回迭代器的 iter 方法,那么对象就是可迭代的。序列都可以迭代;实现了 getitem 方法,而且其参数是从零开始的索引,这种对象也可以迭代s = 'hello'lst = [3,4,5]dic = {'k':'v','key':'value'}st = set([8,9,10])for c in s: print(c)for e in lst: print(e)for e in st:

2020-08-08 13:28:40 146

原创 else 块 和上下文管理器

else 块我们知道在python 中最常用else的地方 就是 在if else 代码块中。而else 并不仅仅用于此,还可以用在 for , while , try 中# for else def f(): my_list = ['banana','apple'] for item in my_list: if item == 'banana': #print(item) # 会进else #return

2020-08-08 13:24:44 127

空空如也

空空如也

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

TA关注的人

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