自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 (LeetCode)1450. 在既定时间做作业的学生人数

LeetCode第1450题

2022-08-19 09:02:07 411

原创 (LeetCode)283. 移动零

(LeetCode)283. 移动零

2022-07-06 10:14:11 218

原创 (LeetCode)231. 2 的幂

(LeetCode)231. 2 的幂

2022-07-06 10:12:14 264

原创 (LeetCode)228. 汇总区间

(LeetCode)228. 汇总区间

2022-07-06 10:09:37 122

原创 visdom安装及使用vsidom实现pytorch训练过程可视化

去年考研,成功上岸。有一年没写博客了,今天可以重新开始写了。(我胡汉三又回来了!)这篇博客写一下

2021-05-09 21:42:30 979 2

原创 数据结构与算法:排序(分类)

一、分类概述1.排序:它是计算机内经常进行的一种操作,其目的是将一组“无序”的记录序列调整为“有序”的记录序列。具体定义为:假设含n个记录的序列为 { R1, R2, …, Rn } , 其相应的关键字序列为 { K1, K2, …,Kn }, 这些关键字相互之间可以进行比较,即在它们之间 存在着这样一个关系:Kp1≤Kp2≤…≤Kpn 按此固有关系将记录序列 { R1, R2, …, Rn } 重新排列为 { Rp1, Rp2, …,Rpn } 的过程称作 分类。2.内部分类和外部分类

2020-05-21 17:03:56 1070

原创 数据结构与算法:搜索(查找)

前面的文章中写的每一种数据结构都定义了一些常用的操作,如:初始化、访问数据元素等等,因此,研究操作的实现(不是操作的定义)即算法与数据结构密不可分。有两个操作在每个数据结构上一般都要定义,而且是非常重要的:·确定元素的位置——搜索(查找);将元素按某种书序排列——排序(分类)。这篇文章我主要写一下搜索(查找)的一些知识(算法基本思想、效率、优缺点、适用范围等)。1.查找:在某一数据集合中查找数据元素是否存在,如果存在,返回其位置,否则,返回失败信息。2.查找表:被查找数据元素的.

2020-05-17 16:31:20 2627

原创 数据结构:图(三) 图的应用

这篇文章讲一下图的一些应用。一、最小连通代价问题无向连通图的生成树有很多,如果图的边具有权值,那么各个生成树的边的权值之和大小就不同。在所有生成树中,权值之和最小的一棵成为最小生成树。1.最小生成树:假设图是一个加权连通图,具有最小权值之和的生成树称为最小代价生成树。Minimum Cost Spanning Tree (MST)举一个例子:假设有一个网络,用以表示n个城市之间假设通信线路,边上的权值代表架设通信线路的成本。如何架设才能使线路架设成本达到最小?这个问题的答案:

2020-05-16 21:39:38 7327

原创 数据结构:图(二) 图的重要操作——遍历

图的重要操作——遍历1.图的广度遍历:BFS(1)遍历方式:假设图为G=(V,E),从v0开始广度优先遍历图。大致的访问过程是:访问v0,作为以访问的标志——>依次访问与v0邻接但未访问的各个顶点——>再依次访问这些顶点的未被访问的邻接点。。。(2)特点:类似于树的层次遍历。尽可能先在横向上访问邻接点,即由远及近,依次访问和出发点有路径相通且路径长度为1,2....的顶点。举个例子:上面这个是无向图的,下面再举一个有向图的例子:(3)需要注意的问题①在没有

2020-05-15 21:05:26 840

原创 数据结构:图(一) 图的基本知识

现实世界中,事物之间的关系是错综复杂的,最简单的是线性关系(线性表,至多有一个前驱一个后继),稍微复杂一些的是树关系(每个元素至多有一个前驱,可能有零个或多个后继)。这片博客我讲一种更为复杂的数据结构——图结构。特征是:每个元素可以有多个前驱、多个后继。1.图逻辑结构(1)定义:图是一种数据结构,它由顶点(Vertex)集合(即数据元素)及顶点间的边(Edge)集合(即元素之间的关系)...

2020-05-14 22:15:13 3011

原创 数据结构:树与二叉树(三) 特殊二叉树

这片博客讲一下二叉树中的几种特殊二叉树。一、二叉排序树1.定义2.递归定义3.特点4.二叉排序树的构建(创造)二、堆1.定义2.特点3.堆的用途4.堆的构造(创建)一、二叉排序树(Binary Sort Tree,BST)1.定义:二叉树中,任何结点均满足条件:“大于其左子树上的所有结点,小于其右子树上的所有结点(若存在的话)”。又称为二...

2020-05-07 12:22:16 836

原创 数据结构:树与二叉树(二) 二叉树

这篇文章讲一下二叉树ADT。1.二叉树数据结构(1)二叉树(Binary Tree)是一个有限元素的集合(可以空),它或者是空(空二叉树),或者由一个称为根的元素以及分别称为左子树和右子树的两个互不相交的集合组成,这个两个集合又都是二叉树。上面这个定义太绕口了,我读了好几遍才明白,二叉树,说白了就是每个结点最多只有两个孩子结点(即孩子结点数量<=2)。(2)二叉树有五种形态,...

2020-05-05 22:33:08 453

原创 数据结构:树与二叉树(一) 树的基本知识

这篇文章给大家简单讲一下树与二叉树。1.树逻辑结构(1)树(Tree)是一个非空的有限元素的集合,元素之间有如下关系:有且仅有一个特殊元素,它没有前驱(称为树根Root),其余元素都有且仅有一个前驱元素,所有的元素(报货树根元素)可以有零个或多个后继。(2)树的递归定义:树T是一个非空数据元素的有限集合,其中有且仅有一个 特定元素称为树T的根,剩余的元素(若有的话)可被划分为 m 个互...

2020-05-05 16:34:14 523 3

原创 数据结构:字符串ADT

这片文章给大家讲解一下字符串。1.字符串的逻辑结构字符串(String)这个东西 ,相信大家都不陌生。字符串,简单来说,是有限字符集中的零个或多个字符组成的有限序列。它是一种特殊的线性表,(数据集为字符集,元素之间具有线性关系)。字符串的特点:数据元素都是字符,使得它的操作的对象一般不再是点那个数据元素,而是一组数据元素(字符子串)。2.字符串结构上定义的操作①字符...

2020-05-03 20:13:04 1159

原创 数据结构:数组ADT

数组,相信大家对这个名词不陌生,他在高级语言中都已经物理实现为数组数据类型。数组是一个特殊的线性表,特殊在元素受多个线性关系约束。因为数组的特殊性,所以其定义的操作非常少。接下来我将讲一下数组的一些知识以及利用数组实现一种特殊的数据结构——矩阵。(我结合我们老师的PPT给大家讲解,其中会夹杂一下我本人对某些问题的理解和看法,说的不对的地方,还请大家不吝赐教。)一、数组的基本知识...

2020-04-24 17:54:12 3227

原创 数据结构:队列ADT的实现

队列是一种特殊的线性表,数据元素之间是线性关系,其插入和删除操作分别在两边进行,一端只能插入,另一端只能删除。队首(front):进行删除操作的一端;队尾(rear):进行插入操作的一端;入队:在队尾插入一个元素;出队:在队首插入一个元素;特性:元素的操作顺序符合“先进先出(FIFO)”或“后进后出(LILO)”。我以链式队列为例子讲解队列的一般操作。链式队列的存储方式...

2020-04-19 18:54:51 1603

原创 数据结构:栈ADT的实现

栈是一种特殊的线性表,是一种线性数据结构,其特殊性是表现在操作定义上:插入和删除操作只能在两端进行(不允许在线性表的中间插入和删除)。栈(Stack):数据结构————线性关系操作————一端固定,只允许一端插入删除特性————“先进的先出,后进的后出”栈有两种存储方式,一种是顺序存储(顺序栈),另一种是链式存储(链式栈)。这里我以链式栈为例子给大家讲解栈ADT的定义。...

2020-04-18 22:08:55 1546

原创 Python识别身份证号码并检查是否合法(pysseract,dlib,opencv)

接下来我将讲述如何利用pysseract、dlib以及OpenCV识别身份证号码并检查其是否合法(包括库文件的安装等)。我参照了以下两篇博客的内容(或者说是这两篇博客的整理以及整合):https://blog.csdn.net/qq_37674858/article/details/80497563https://blog.csdn.net/nzjdsds/article/detail...

2020-03-23 09:55:24 2042 1

原创 shape_predictor_5_face_landmarks.dat以及shape_predictor_68_face_landmarks.dat资源分享

学校的项目要求做一个身份证识别,找到的教程需要用到5个特征点检测的数据库。由于从官方网站下载速度比较慢,而且我上网只找到了68个点的,最后不得已上淘宝(万能淘宝)花了两块钱,托商家从外网下了5个点的数据库。这里我将shape_predictor_5_face_landmarks.dat以及shape_predictor_68_face_landmarks.dat都分享出来,供广大人学习人员下载(免...

2020-03-22 21:19:15 4907 10

原创 简单 的Python图形界面编程和数据可视化编程:实现一个简单的账本(与MySQL交互)

最近被新型冠状病毒闹得,门出不去,学校回不了,网络不太行,打游戏总卡,百无聊赖,就想着利用图形界面编程写一个账本,开学要用。 肯定有人会说为什么不从手机上下一个现成的App,那样多方便。手机上的记账APP我不是没用过,说实话,人家写的非常好,无论是界面还是功能都无可挑剔,但是功能实在是太多了,我用起来眼花缭乱的,用着用着就乱套了,所以就想自己写一个,只写自己需要的功...

2020-02-02 01:28:04 2399 4

原创 LeetCode算法题268:缺失数字

这是一道简单题,但是做法很多,有一个算法还涉及到了数学知识,这里给大家分享一下。题目描述如下:给定一个包含 0, 1, 2, ..., n中n个数的序列,找出 0 .. n中没有出现在序列中的那个数。示例 1:输入: [3,0,1]输出: 2示例2:输入: [9,6,4,2,3,5,7,0,1]输出: 8说明:你的算法应具有线性时间复杂度。你能否仅使用额外常...

2020-01-06 13:22:32 364

原创 LeetCode算法题:相交链表

题目描述如下:编写一个程序,找到两个单链表相交的起始节点。如下面的两个链表:在节点 c1 开始相交。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node with value = 8输入解释:...

2019-10-21 00:24:42 200

原创 LeetCode算法题:环形链表II

题目描述如下:给定一个链表,返回链表开始入环的第一个节点。如果链表无环,则返回null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。说明:不允许修改给定的链表。示例 1:输入:head = [3,2,0,-4], pos = 1输出:tail connects to nod...

2019-10-19 21:36:34 183

原创 LeetCode算法题:循环链表

题目描述如下:给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点。示例2:输入:head = [1,2], ...

2019-10-19 00:27:08 475

原创 LeetCode算法题:寻找重复数

题目描述如下:给定一个包含n + 1 个整数的数组nums,其数字都在 1 到 n之间(包括 1 和 n),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。示例 1:输入: [1,3,4,2,2]输出: 2示例 2:输入: [3,1,3,4,2]输出: 3说明:不能更改原数组(假设数组是只读的)。只能使用额外的 O(1) 的空间。时间复...

2019-10-17 23:13:28 564

原创 LeetCode算法题:删除排序数组中的重复项II

题目描述如下:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例1:给定 nums = [1,1,1,2,2,3],函数应返回新长度 length = 5, 并且原数组的前五个元素被修改为 1, 1, 2, 2, 3 。你不需要考...

2019-10-16 23:13:08 243 1

原创 LeetCode算法题:子集

题目描述如下:给定一组不含重复元素的整数数组nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出:[ [3],[1],[2],[1,2,3],[1,3],[2,3],[1,2],[]]这是一道比较简单的题目,有很多种方法做,这里只介绍迭代法。Python...

2019-10-12 18:50:17 187

原创 LeetCode算法题:搜索二维矩阵

LeetCode题库里把这道题标记为中等难度,但是做起来很简单,就是按照两步搜索就好。题目描述如下:编写一个高效的算法来判断m x n矩阵中,是否存在一个目标值。该矩阵具有如下特性:每行中的整数从左到右按升序排列。每行的第一个整数大于前一行的最后一个整数。示例1:输入:matrix = [ [1, 3, 5, 7], [10, 11, 16, 20],...

2019-10-04 15:15:30 239

原创 数据结构:链式表ADT的实现

链表适用于插入或删除操作频繁,存储空间需求不定的情形。链表分很多种,有单链表、双链表、循环链表等,这里我以单链表为例,实现单链表的ADT。 单链表是一种最简单的链表表示,也叫作线性链表。用它来表示线性表时,用指针表示节点间的逻辑关系。因此单链表的一个存储节点包含两部分: ...

2019-09-23 20:03:13 1479

原创 数据结构:顺序表ADT的实现

线性结构是简单且常用的数据结构,而线性表是一种典型的数据结构。 一般情况下,如果需要在程序中存储数据,最简单、最有效的方法是把它们存放在线性表中。只有当需要组织和搜索大量数据时,才会考虑使用更复杂的数据结构。 在所有的数据结构中,最简单的是线性表。通常,定义线性表为n(n>=0)个数据元素的一个有限的序列。记为: ...

2019-09-23 18:28:50 3143

原创 Python爬虫爬取网页实例二:BeautifulSop应用模拟登录人人网

今天写一下利用BeautifulSop模拟登陆人人网的爬虫。目前有很多网站需要用户名和密码来进行登录,有些浏览器在你第一次输入用户名和密码后,会保存你输入的用户名和密码,即Cookie值,BeautifulSop可以爬取Cookie值并保存,然后利用Cookie来登录相关的网站。首先我们要用抓包工具来抓取网站的相关信息,即我们需要知道输入的用户名和密码发送给哪个网站进行了处理,以及需要传递...

2019-08-10 15:13:00 429

原创 Python爬虫爬取静态网页实例一:爬取内涵段子吧上的段子

最近在学爬虫,这里用实例来与大家分享一下我学习的经验。这里讲一个爬取静态网页内容的实例,Python一般利用正则表达式爬取静态静态网页的内容,而且因为静态网页源代码固定,不会发生变化,所以比较简单,这里选内涵段子吧作为例子。内涵段子吧里的段子分为很多页,大家可以点击每一页,观察一下网址的变化,最后会发现每一页的url地址都遵循一个规则:https://www.neihan8.com/a...

2019-08-07 18:02:30 779 1

原创 LeetCode算法题:34. 在排序数组中查找元素的第一个和最后一个位置

题目描述如下:给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是O(log n) 级别。如果数组中不存在目标值,返回[-1, -1]。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: [3,4]示例2:输入: nums = [5,7,7...

2019-07-24 20:38:54 292

原创 LeetCode算法题:二进制求和

一道简单的算法题,题目描述如下:给定两个二进制字符串,返回他们的和(用二进制表示)。输入为非空字符串且只包含数字1和0。示例1:输入: a = "11", b = "1"输出: "100"示例2:输入: a = "1010", b = "1011"输出: "10101"这道题用暴力法思路很简单,但是写起来很麻烦。二进制大家都知道如何计算,也知道如何进位,我们...

2019-07-19 00:06:50 260

原创 LeetCode算法题:合并区间

题目描述如下:给出一个区间的集合,请合并所有重叠的区间。示例 1:输入: [[1,3],[2,6],[8,10],[15,18]]输出: [[1,6],[8,10],[15,18]]解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例2:输入: [[1,4],[4,5]]输出: [[1,5]]解释: 区间 [1,4] 和 [4,5] ...

2019-06-02 16:11:46 782

原创 LeetCode算法题:最接近三数之和

题目描述如下:给定一个包括n个整数的数组nums和 一个目标值target。找出nums中的三个整数,使得它们的和与target最接近。返回这三个数的和。假定每组输入只存在唯一答案。例如,给定数组 nums = [-1,2,1,-4], 和 target = 1.与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2). 这道题...

2019-05-28 23:26:27 303

原创 LeetCode算法题:字符串转换整数(atoi)

题目描述如下:请你来实现一个atoi函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。该字符串除了有效的整数部分之后也可能会存在多余...

2019-05-27 21:26:57 243 1

原创 Python pdb调试

Python的调试方法有三种,一种是执行时调试,一种是交互调试,一种是程序里埋点调试,其中,最常用的是执行时调试,也就是pdb调试,这个调试在命令行中键入python -m pdb some.py即可进入Python pdb调试,(这行命令在Linux系统下进入的是Python2的调试,如果要进入Python3的调试需要在python的后面加一个3,即python3 -m pdb s...

2019-05-24 17:44:28 759

原创 python浅拷贝与深拷贝

最近看了一些Python的教学视频,其中看到一个关于Python拷贝(浅拷贝与深拷贝)的知识点,老师说这是重点,所以在这里分享一下我对浅拷贝与深拷贝的理解。 Python的拷贝方式分为两种,一种是浅拷贝,另一种是深拷贝,所谓浅拷贝,通俗点说就是把一个变量的值赋给另一个变量,Python对变量赋值的处理方式和C、C++不同,对于某个赋值语句如a=100,C、C++是开辟...

2019-05-23 21:08:29 518

原创 LeetCode算法题:颜色分类

题目描述如下:给定一个包含红色、白色和蓝色,一共n个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、1 和 2 分别表示红色、白色和蓝色。注意:不能使用代码库中的排序函数来解决这道题。示例:输入: [2,0,2,1,1,0]输出: [0,0,1,1,2,2] 这道题有很多种做法,一种是直...

2019-05-23 20:22:00 655

空空如也

空空如也

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

TA关注的人

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