自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Harris角点检测原理

一.特征点的定义粗略的讲,特征就是有意义的图像区域,该区域具有独特特征和易于识别性。二.角点的定义在几何上,指相交的点;在cv里面,指像素点各方向发生变化较大的点。三.Harris角点检测的基本思想算法基本思想是使用一个固定窗口在图像上进行任意方向上的滑动,比较滑动前与滑动后两种情况,窗口中的像素灰度变化程度,如果存在任意方向上的滑动,都有着较大灰度变化,那么我们可以认为该窗口中存在角点。之所以用一个窗口来衡量灰度变化,是为了方便测量,计算平均值比较准确地来表示区域是否为角点1、灰度变化描

2020-06-24 22:12:16 676

原创 LeetCode——正则表达式匹配

题目描述:请实现一个函数用来匹配包含’. ‘和’‘的正则表达式。模式中的字符’.‘表示任意一个字符,而’'表示它前面的字符可以出现任意次(含0次)。在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"abaca"匹配,但与"aa.a"和"ab*a"均不匹配。答题思路:递归思想求解class Solution: def isMatch(self,...

2020-03-18 23:24:15 208

原创 LeetCode——最长回文子串

题目描述:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。暴力解法思想:设置两个循环和一个判断是否是回文字符串的函数。首先设置大循环遍历循环,接着设置第二个循环即右边界循环,对以这两个循环变量为左右边界的字符字串进行判断,若是则记录此时字符串开头位置和长度,若不是则继续进行遍历。由于时间耗费过多,此法就不再赘述。动态规划法:以空间换取时间,具体见下述...

2020-03-17 22:40:24 190

原创 LeetCode——无重复字符的最长字符串

题目描述:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。从前往后遍历,i 代表当前子串的起始点,j代表终点 + 1 的位置。使用集合 st 存储当前字串中出现过的字母,如果 j 上的字母在集合中,直接从 i 开始迭代,找到第一个这个字母,从集合里删掉。class Solution: def lengthOfLongestSubstring(self, s: st...

2020-03-16 22:23:40 232

原创 LeetCode——有效的括号

题目描述:给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:1.左括号必须用相同类型的右括号闭合。2.左括号必须以正确的顺序闭合注意空字符串可被认为是有效字符串。我对这个题目的话,上来的第一思路就是循环套循环做,试着试着发现行不太通,又使用了递归函数的做法。借鉴网上优秀编程后,又收获了有关栈(stack)的知识,发现网上...

2020-03-15 22:08:34 150

原创 LeetCode——最长公共前缀

题目描述:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。答题思路:本题采取的是暴力解法,即依次比较链表中的字符串,具体见下列程序:class Solution: def longestCommonPrefix(self, strs: List[str]) -> str: if len(strs)==0 : ...

2020-03-14 20:49:08 162

原创 LeetCode——罗马数字转整数

题目描述:例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4 。同样地,数字 9 表示为 IX。这...

2020-03-13 20:37:08 260 1

原创 LeetCode——合并K个排列链表

题目描述:合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。首先了解一下堆排列的模块函数heapq,heapq函数简介答题思路:遍历lists,将每一个链表的节点添加到堆中,之后不断从堆中取最小值,添加到新的链表中,最后返回这个列表具体程序如下:class Solution(object): def mergeKLists(self, lists): ...

2020-03-13 20:12:27 160

原创 LeetCode——删除链表中的第N个元素

题目描述:给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。答题思路:两边扫描,第一遍拿到删除点位置,第二遍找到删除点进行删除。class Solution: def removeNthFromEnd(self, head: ListNode, n: int) -> ListNode: node_no = 0 node = h...

2020-03-11 22:41:44 233

原创 LeetCode——两数相加

问题描述:给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。答题启示:链表是一个全新的数据结构,并且这种数据结构在python的标准库中并未给出,因而定义新的链表时需引用相应的节点...

2020-03-10 17:30:33 128

原创 LeetCode——环形链表

题目描述给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。新获取的知识:通过这道题感觉自己对链表的认识又增加了一些,假设一个链表的名字叫做head,那么head代表着现在这个元素的存储地址,head.val代表着这个元素的数值,head.next代表着下一个元素...

2020-03-09 22:32:20 143

原创 LeedCode——删除排序链表中的重复元素

题目描述:给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。先看具体程序:class Solution: def deleteDuplicates(self, head: ListNode) -> ListNode: dummy_head = ListNode(None) dummy_head.next = head ...

2020-03-08 14:41:06 153

原创 LeetCode——合并两个有序链表

问题描述:将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。答题思路:主要利用了链表的结构知识,即链表的每个单元都包含着一个数值域和一个指针域,指针域指向下一个数值,对于这种天然的递归趋势我们可以加以利用,构造出一个递归函数,来进行两个链表的有序排序。具体程序如下:class Solution: def mergeTwoLists(se...

2020-03-07 20:52:05 138

原创 LeetCode——买股票的最佳时机

问题描述:给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。一.个人解法二.dp解法一.个人解法1.一遍循环法答题思路:只遍历一遍,然后每次遍历的时候,得出目前来说的最小值,以及利润最大值具体程序如下:class Solution: ...

2020-03-06 22:44:32 151

原创 LeetCode——最接近的三数之和

题目描述:给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。答题思路:1)对数组进行排序2)设置一个总循环,循环变量设为i3)设置左右指针,分别从i+1和最后的元素开始进行遍历4)得到结果具体程序如下:class Solution: d...

2020-03-05 20:49:15 174

原创 LeetCode——三数之和

题目描述:给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。1.双指针法首先对原列表进行排序,利用i来遍历列表内的所有元素(注意查重并且过滤掉重复元素),再设两个左右指针,分别从i+1和最右侧开始向中间靠拢进行查找。代码如下:class...

2020-03-04 22:51:26 193

原创 LeetCode——移除元素

一.个人探索二.网上优秀编程一. 个人探索题目描述:给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。答题思路:先判断数组中有无指定元素,若没有则直接返回该数组,若有则进行...

2020-03-03 17:45:59 155

原创 LeetCode——删除数组中的重复元素的补充

class Solution: def removeDuplicates(self, nums: List[int]) -> int: for i in range(len(nums)-1,0,-1): if nums[i]==nums[i-1]: nums.pop(i)#运行时间40到55ms之间 ...

2020-03-02 18:46:19 249

原创 LeetCode——删除排序数组中的重复项

一.个人探索二.网上优秀编程三.程序扩展题目描述:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。题目解读:1)给定的是一个排序数组,暗示相同的元素会紧挨在一起2)不要用额外的数组空间,也就是只能对原数组进行修改一.个人探索1.del函数...

2020-03-02 18:29:35 233

原创 LeetCode——两数之和

一.个人探索二.网上优秀编程三.程序进一步扩展优化功能一.个人探索1.暴力解法答题思路:两个循环来遍历列表中的所有组合可能来获取答案值。优点:简单易懂,比较容易想到的一种嵌套循环进行遍历的思想。缺点:使用嵌套循环遍历整个数据,耗费时间多,空间多,程序的运行状况也是不太稳定的。程序况如下:class Solution: def twoSum(self, nums: List...

2020-03-01 12:51:50 290

原创 Python文件写入:Python中显示写入成功,但文件仍然为空

原因:写入文件后未关闭文件!f=open(r'C:\test.txt','w')s=['1','你好',‘2’]f.writelines(s)f.close() #不要忘记最后要关闭文件在补充一点,关于write和writelines的区别:write():只能写入字符串,不能输入列表形式的字符串writelines():只能写入字符串,但是可以写入列表形式的字符串,...

2020-02-01 21:49:34 8581 1

原创 Python的一个小程序题

题目:有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。菜鸟驿站里面给出的程序非常言简意赅,简便通俗易懂:for i in range(1,5): for j in range(1,5): for k in range(1,5): ...

2020-01-30 11:38:52 275

原创 adaboost分类器

定义:Adaboost是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成一个更强的最终分类器(强分类器)。算法原理:(1)初始化训练数据(每个样本)的权值分布:如果有N个样本,则每一个训练的样本点最开始时都被赋予相同的权重:1/N。(2)训练弱分类器。具体训练过程中,如果某个样本已经被准确地分类,那么在构造下一个训练集中,它的权重就被降...

2019-12-15 18:35:31 1058

原创 机器学习:支持向量

SVM支持向量机一、简介支持向量机(support vector machines)是一种二分类模型,它的目的是寻找一个超平面来对样本进行分割,分割的原则是间隔最大化,最终转化为一个凸二次规划问题来求解。由简至繁的模型包括:●当训练样本线性可分时,通过硬间隔最大化,学习一个线性可分支持向量机●当训练样本线性不可分时,通过核技巧和软间隔最大化,学习一个非线性支持向量机二、线性可分支持向量机...

2019-12-06 23:21:31 617

原创 Python模块安装包的安装问题(numpy,matpolitlib)

鉴于我成功安装numpy模块安装包用了近半个月的时间(当然途中有过放弃),今天终于成功安装,分享一下个人失败教训和心得。希望能够对新入手的同志们有所帮助。

2019-11-28 21:20:45 949

原创 机器学习:朴素贝叶斯和Logistic回归

朴素贝叶斯(基于概率论的分类方法)朴素贝叶斯优点:在数据输入较少的情况下仍然有效,可以处理多类别问题缺点:对于输入数据的准备方式较为敏感使用数据类型:标称型数据关于朴素贝叶斯名词的解释我们称之为“朴素”,因为整个形式化过程只做最原始,最简单的假设,贝叶斯决策理论的核心思想就是选择具有最高概率的决策。我们先就只有两个特征值的情况进行说明:如果p(B1 | A)>p(B2 ...

2019-11-23 11:42:19 1083

原创 机器学习:K-近邻算法和决策树知识点总结

一.K-近邻算法 k-近邻算法优点:精度高,对异常值不敏感,无数据输入假定。缺点:计算复杂度高,空间复杂度高适用数据范围:数值型和标称型1.k-近邻算法的工作原理:存在一个样本数据集合,也称作训练样本集合,并且样本集中每个数据都存在标签,即我们知道样本集中每一数据与所属分类的对应关系。输入没标签的新数据后,将新数据的每个特征与样本集中数据对应...

2019-11-16 11:10:21 788

原创 Python:模块

1.模块的定义:模块是一组包含了一组功能的python文件,比如test.py,模块名为test,可以通过import test进行调用。模块可以分为以下四个通用类别模块是一组包含了一组功能的python文件,比如test.py,模块名为test,可以通过import test进行调用。模块可以分为以下四个通用类别:1 使用python编写的.py文件2 已被编译为共享库或DLL的C或C++...

2019-11-05 22:58:16 223

原创 Python:魔法方法总结及注意事项

1、何为魔法方法:Python中,一定要区分开函数和方法的含义;1.函数:类外部定义的,跟类没有直接关系的;形式: def func(*argv):2.方法:class内部定义的函数(对象的方法也可以认为是属性);分为两种:① python自动产生的(魔法方法):一般形式为 func(),python会在对应的时机自动调用该函数;② 人为自定义的方法:一般和普通函数没有区别,只是定义在了...

2019-11-04 11:07:54 287

原创 Python:类与对象

类类时面向对象的程序设计(是一种对现实世界理解和抽象的方法)中的一种新的高效利用的数据类型定义: 类(Class),只把具有相同特性(数据)和行为(函数)的对象抽象成类。●数据通过类内的局部变量来实现对数据的读写操作●函数可以实现对类的相关行为的操作类的相关知识分析>>> class Box1(): def __init__(self,length1,width1,...

2019-11-01 23:20:32 191

原创 Python:else和with的用法

else和with是Python中两个重要的关键字Else1.if…else…(判断语句)如果if语句中的条件不满足,则执行else中的语句2.while\for…else…(循环语句)如果while和for循环正常结束,则执行else中的语句要特别注意的是,如果循环是通过break语句跳出来或者出现异常,那么else语句将不再进行3.try…except…else…finally(...

2019-10-31 13:40:40 653

原创 Python:异常

●程序中的问题●捕捉异常●抛出异常程序中的问题1.低级错误:代码语法出错低级错误指纯语法错误,代码主要在编写,调试阶段就报错。2.中级错误:代码存在隐性错误隐性错误主要指代码编写存在逻辑错误或缺陷,当程序满足特定数据处理条件时,报错或给出错误答案。隐性错误的特点是正常情况下正常运行,特殊情况下(如边界值没有考虑周到,传入数据没有仔细检查类型等)出错。3.高级错误:软件面对不确定性的...

2019-10-30 17:52:02 370 1

原创 Python:文件与文件系统

文件系统●标准库OS常用命令●文件的打开与关闭●文件概述●文件如何操作●open()函数提供7种基本的打开模式●文件关闭●文件的读与写●f.read()的用法●tell与seek●tell()●f.seek()文件文本文件定义:具有初步存放,编辑各类数据的能力,并可以持久保留和数据共享。建立文本首先建立文本文件有两种途径,一是手工通过Windows操作系统的“记事本”...

2019-10-30 00:33:21 220

原创 Python:函数与Lambda表达式

●函数基本知识●自定义函数第一步●自定义函数第二步函数基本知识定义:指通过专门的代码组织,用来实现特定功能的代码段,具有相对独立性,可供其他代码重复调用。函数定义基本语法def 函数名([参数]) 函数体 [return 返回值]1)def关键字Python语言任何函数定义必须以关键字def开始,其后空一格紧跟函数名。2)自定义函数名自定义函数名除了遵循基本命...

2019-10-27 15:48:42 174

原创 Python:字典结构与集合

1.字典的基本知识定义:字典(Dict),是可变的无序集合,同时是一种以键值对为基本元素的可以存储各种数据类型的集合,用大括号({ })表示字典的开始和结束,元素之间用逗号分隔键值对:由键(Key)和值(Value)组成,中间用冒号(:)分隔。如“tom:29”的键为tom,对应的值为29.采用键值对,可以更加独立而紧密地表示两者之间的关系。可以看出,字典属于典型的一一映射关系的数据类型。...

2019-10-26 20:50:18 352

原创 Python:字符串与序列

•字符串•序列字符串字符串的定义定义:由任意字节的字符组成,用单引号(’),双引号(")或者三引号(’’’)成对表示▶注意:在字符串中用反斜杠(\)开头的代表字符转义字符字符串的基本操作字符串的基本操作包括读取,合并,修改,删除。(1)字符串值的读取>>> name='Tom is a cat!'(2)单下表读取:[下标]>>> name...

2019-10-24 13:22:46 437

原创 刻意练习:Python基础 -- Task03. 列表与元组

●列表●元组列表1.定义(List):是可变的序列,也是一种可以存储各种数据类型的集合,用中括号表示列表的开始和结束,元素之间用逗号(,)分隔。列表中每个元素提供一个对应的下标。示例:>>> [][]>>> text=[]>>> len(text)0>>> text=[1,2,'人']>>&g...

2019-10-22 13:33:15 173

原创 刻意练习:Python基础 -- Task02. 条件与循环

学习重点:●if条件分支●while循环●for循环●break语句●continue语句if条件分支1.格式一:单分支判断>>> if boolean_value: 子代码模块1boolean_value为if语句的判断条件,以布尔值的形式判断if语句是否执行子代码模块1。当boolean_value的值为True是,则执行子代码模块1;当值为False时...

2019-10-21 11:08:26 251

原创 python 1:变量,运算符号和数据结构

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入一.pyth...

2019-10-20 19:22:39 534

空空如也

空空如也

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

TA关注的人

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