自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 把字符串转化为整数

题目描述将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0输入描述:输入一个字符串,包括数字字母符号,可以为空输出描述:如果是合法的数值表达则返回该数字,否则返回0解题思路本题主要是需要考虑很多异常,比如:指针是否为空指针以及字符串是否为空字符串;字符串对于正负号的处理;输入值是否为合法值,即小于等于’9’,大于等于’...

2019-12-26 16:58:54 275

原创 翻转单词顺序列

题目描述牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?解题思路与左旋转字符串...

2019-12-24 19:03:21 127

原创 左旋转字符串

题目描述汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!解题思路例如:输入字符串"abcdefg"和数字2,该函数将返回左旋转2位得到的结果"cdefg...

2019-12-23 21:43:59 151

原创 第一个只出现一次的字符

题目描述在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).解题思路建立一个哈希表,第一次扫描的时候,统计每个字符的出现次数。第二次扫描的时候,如果该字符出现的次数为1,则返回这个字符的位置。C++class Solution {public: int FirstNot...

2019-12-23 17:22:38 100

原创 字符串的排列

题目描述输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。解题思路利用递归的思想,将字符串看为第一个字符与后面所有的字符,依次递归计算出可能的排列,还是图好说话:C++class Solution {public: vector<string&gt...

2019-12-19 11:10:01 127

原创 YOLOv1学习与总结

https://blog.csdn.net/hrsstudy/article/details/70305791You Only Look Once:Unified, Real-Time Object Detection作者提出了一种新的物体检测方法YOLO。YOLO之前的物体检测方法主要是通过region proposal产生大量的可能包含待检测物体的 potential bounding...

2019-12-18 18:50:59 353

原创 数组中数字出现的次数

题目描述一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。解题思路本题使用C++需要运用异或的思路,暂时没有写出来。暂时使用Python解题,使用了字典的技巧。# -*- coding:utf-8 -*-class Solution: # 返回[a,b] 其中ab是出现一次的两个数字 def FindNumsAppearOnce...

2019-12-18 10:11:03 69

原创 数字在排序数组中出现的次数

题目描述统计一个数字在排序数组中出现的次数。解题思路1、循环扫描所有数组进行计数,时间复杂度为n,但是忽略了是排序的这一特性。2、使用二分查找的思想,关键判断为当当前数字等于k时,如果前一数字不等于k,则该处为第一次出现k的位置。判断最后一个K同理。C++class Solution {public: int GetNumberOfK(vector<int> da...

2019-12-17 18:14:40 98

原创 数组中的逆序对

题目描述在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007解题思路1、暴力解法,顺序扫描整个数组,如果碰到比他小的数字则计数加一,很显然这种算法的复杂度为n^2的,不适合。class Solution {public: int I...

2019-12-17 16:14:03 93

原创 把数组排成最小的数

题目描述输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。思路为了避免大数问题(拼接起来的数字可能造成越界),将数字转化为字符串进行处理,自定义一个排序规则:若ab > ba 则 a 大于 b,若ab < ba 则 a 小于 b,若ab = ba 则...

2019-12-16 20:33:05 77

原创 连续子数组的最大和

题目描述HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。给一个数组,返回它的最大连续子序列...

2019-12-16 11:47:17 113

原创 数组中出现次数超过一半的数字

题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。算法思路法1: O(nlogn) 先排序,找到中位数,然后遍历一边确认是否满足要求。法2: O(n) 注意到目标数 超过数组长度的一半,对数组同时去掉两个不同的数字,到最后剩...

2019-12-15 11:39:25 132

原创 常用代码整理(xml文件信息读取等)

读取目标文件夹中的xml文件,将指定信息写入新建的txt文件中import xml.etree.ElementTree as ETimport osdef xml_data(xml_path): tree = ET.parse(xml_path) root = tree.getroot() for child in root.findall('objec...

2019-12-13 11:27:12 1308

原创 分类、目标检测中的评价指标

通过训练得到的模型,在测试集上进行预测,分析常用的目标检测的评价指标(mAP)得到曲线对模型进行评价,方便对比不同的检测模型以及调参与数据增广处理后得到的不同效果有一个明确的比较。这也是论文中使用的评价指标的来历。本处以之前的标签数据作为分析对象。...

2019-12-12 16:02:57 571

原创 YOLOv3-Tiny检测包装标签

实验目标能够对包装上的标签进行检测,找出其位置并进行分类。(由于拿到的标签数据与需要的不一致,该处主要讲解格式转化及其标注框转化的一点心得)标注工具之前使用的标注工具为labelImg保存的为xml格式,使用的是矩形框标注。拿到的数据是使用labelme标注的为json格式,其是通过多边形标注的,这其中需要进行转化。另外拿到的数据为675*1280尺寸的不支持YOLO的输入,将尺寸压缩的同时...

2019-12-10 11:19:33 350 1

原创 剑指offer(查找)

循环数组的查找有一个循环有序数组A,如{7,8,9,0,1,2,3,4,5,6},不知道其最小值的位置。那么如何从这样的数组中寻找一个特定的元素呢?解题思路我们可以把循环数组分为两部分,其中必定有一部分是排好序的,比较元素的值,如果在排序数组中则直接进行二分查找即可,如果不在排好序的数组中,则递归的调用查找函数。#include <iostream>using namespa...

2019-12-05 15:20:26 84

原创 C++学习(Vector)

https://www.cnblogs.com/zhangfuxiao/p/9261578.html1.接口与实现1.1抽象数据类型:一组数据模型上定义的一组操作 数据类型是(char、int等)数据结构:基于特定语言的,实现ADT的一整套算法。1.2向量:向量是数组的抽象与泛化,由一组元素按线性次序封装而成。特点:1.各元素与(0,n)内的秩一一对以应2.元素的类型不...

2019-12-05 10:20:14 165

原创 剑指offer(最长子序列)

https://www.cnblogs.com/maybe2030/p/5469877.html最长子序列注意区分最长子序列与最长公共子串(连续)的区别。求两个字符串的最长公共子串(KMP等)后续需要整理,现在先使用动态规划的方法讨论LCS问题(暴力法时间复杂度是指数级)动态规划算法通常用于求解具有某种最优性质的问题。在这类问题中,可能会有许多可行解。每一个解都对应于一个值,我们希望找到...

2019-12-04 13:26:54 320

原创 剑指offer(调整数组顺序)

题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。解题思路**1、暴力解法:**从前到位扫描数组,如果出现前面是偶数后面是奇数的情况,则交换。其中使用冒泡排序的思想。从后面朝前比较,使用外循环控制趟数。class Solution {public: voi...

2019-11-30 12:16:07 118

原创 剑指offer(用两个栈实现一个队列)

题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型解题思路1、完成队列的插入操作,直接在栈1中插入即可(stack1.push(data))2、当需要删除(pop)时,stack2不为空时,直接弹出栈顶的元素,注意stack.top()记录元素进行返回。如果stack2为空,则将stack1中的所有元素压入stack2中,然后弹出即可。C++实现...

2019-11-29 14:39:40 79

原创 剑指offer(数值的整数次方)

题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。(保证base和exponent不同时为0)解题思路本题虽说不难,但主要是考察对编程全面性的理解。1、考虑指数与底数同时为零的问题。2、底数为零,指数为负数时便会出现对零求倒数。(如果指数为负,先将指数取反,对底数取导数便能正常进行计算)C++实现class Solu...

2019-11-28 19:35:33 69

原创 剑指offer(青蛙跳、矩形覆盖)

题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。求解思路如果只有一级台阶便只有一种方法,如果有两级台阶便有两种方法。如果把有n级台阶时的跳法看成f(n)的函数,第一次跳的时候有两种选择,如果第一次跳一阶,此时的跳法数目等于剩下的n-1阶的跳法数目,即f(n-1),如果第一次跳两阶,此时跳法数目等于n-2阶的跳法数目...

2019-11-28 10:28:43 83

转载 C++学习(多级指针与多维数组)

https://www.cnblogs.com/chenyangyao/p/5222696.html 指针与数组是C/C++编程中非常重要的元素,同时也是较难以理解的。其中,多级指针与“多维”数组更是让很多人云里雾里,其实,只要掌握一定的方法,理解多级指针和“多维”数组完全可以像理解一级指针和一维数组那样简单。 首先,先声明一些常识,如果你对这些常识还不理解,请先去弥补一下基础知识:...

2019-11-26 12:12:40 157

原创 剑指offer(数组中重复的数字)

数组中重复的数字在一个长度为n的数组里的所有数字都在0~n-1范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是重复的数字2或者3。解题思路1.把输入的数组进行排序,排序后再判断有无重复数字,时间复杂度为O(n*lgn)。2.使用哈希表来解决,从头...

2019-11-25 23:28:53 81

原创 剑指offer(旋转数组的最小数字)

旋转数组的最小数字把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。解题思路解法1:最直观的想法就是从头到尾遍历一遍数组,就能找到最小的元素,但是时间复杂度是O(n...

2019-11-24 23:25:17 64

原创 剑指offer(斐波那契数列)

斐波那契数列大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39解法解法1:最开始直接想到用递归,但是递归存在很严重的效率问题(每一次函数调用,都需要在栈中分配空间以保存参数,返回地址及临时变量。并且往栈里压入数据和弹出数据都需要时间,严重时可能引起栈溢出),此方法编译不通过。class Solution {publi...

2019-11-23 21:17:52 77

原创 剑指offer(替换空格)

https://blog.csdn.net/y912423222/article/details/87921420No.2:替换空格请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。...

2019-11-22 23:32:55 114

原创 剑指offer(二维数组中的查找)

加油!每天至少一道算法题(包括C++、python解法)No.1:二维数组中的查找在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。解题关键点选择左下方或者右上方为起点进行判断,从而改变行列进行判断是否存在该整数。Python版本# -*- c...

2019-11-21 22:49:31 78

原创 C++学习(多态性)

多态性概述• 多态的概念▫ 在C++语言中,多态是指具有不同功能的函数可以使用同一个函数名,这样就可以用一个函数名调用不同内容的函数。• 多态的种类▫ C++语言支持的多态性可以按其实现的时机分为编译时多态和运行时多态两类。• 绑定是指把一个标识符名和一个存储地址联系在一起的过程• 编译时的多态▫ 绑定工作在编译连接阶段完成的情况称为静态绑定。▫ 重载(函数、操作符),模板(函数、...

2019-11-19 16:20:38 220

原创 C++学习(继承与派生)

类的继承与派生• 保持已有类的特性而构造新类的过程称为继承。• 在已有类的基础上新增自己的特性而产生新类的过程称为派生。• 被继承的已有类称为基类(或父类)。• 派生出的新类称为派生类(或子类)。• 继承的目的:实现代码重用。• 派生的目的:当新的问题出现,原有程序无法解决(或不能完全解决)时,需要对原有程序进行改造。class Derived: public Base1, pr...

2019-11-18 17:42:47 254

原创 C++学习(数组、指针与字符串)

指针指针的赋值• 指针变量的初始化▫ 语法形式存储类型数据类型*指针名=初始地址;例:int *pa = &a;• 注意事项▫ 用变量地址作为初值时,该变量必须在指针初始化之前已声明过,且变量类型应与指针类型一致。▫ 可以用一个已赋初值的指针去初始化另一个指针变量。指针变量的赋值运算指针名= 地址▫ “地址”中存放的数据类型与指针类型必须相符。▫ 向指针变量赋的值...

2019-11-18 15:42:10 292

原创 C++学习(数据的共享与保护)

对象的生存期1、静态生存期• 这种生存期与程序的运行期相同。• 在文件作用域中声明的对象具有这种生存期。• 在函数内部声明静态生存期对象,要冠以关键字static。2、动态生存期• 块作用域中声明的,没有用static修饰的对象是动态生存期的对象(习惯称局部生存期对象)。• 开始于程序执行到声明点时,结束于命名该标识符的作用域结束处。#include <iostream&g...

2019-11-18 14:21:12 338

原创 C++学习(String类的实现)

Big Three在类的设计中,析构函数、拷贝构造函数、拷贝赋值函数合称为C++的三大函数,有时候忽略了可能没有什么影响,因为编译器会调用其默认的三大函数,而正好默认函数满足其需求,但是很多情况下还是需要自己定义。什么时候需要显示定义拷贝构造函数:一种最简单的判别方法,如果成员变量中有需要动态分配内存时,需要显式定义拷贝构造函数。  成员变量中动态分配了内存,那么必定需要再析构函数中回收,...

2019-11-15 12:10:28 86

原创 堆、栈与内存管理

stack与heap作用域与生命期(构造函数与析构函数何时被调用)1、静态的对象(static objects)其生命在作用域结束之后仍然存在,直到整个程序的结束才调用其析构函数2、局部变量的生命在作用域结束之后便结束,申请的内存位于栈(stack)中。3、全局的对象(global objects),其生命与静态变量一样,在整个程序结束之后才结束。4、new一个对象的时候先分配内存,...

2019-11-15 10:20:37 98

原创 C++学习(complex类)

注意事项1、防卫式的申明,避免重复定义类2、重载一般发生在构造函数中,构造函数可以提供默认实参,要注意成员初始化列表的使用。构造函数在对象创建的同时被调用。3、有些函数可以在类中直接进行定义,也可以在类外进行定义,在类中进行定义的函数都为内联函数,在类外定义式在前面加上inline则也可以推荐为内联函数,但具体是不是内联还是得看编译系统。内联函数一般选择较为简单的函数(不能包含循环,swit...

2019-11-14 16:33:59 3228

原创 数字图像处理(Canny检测算子)

https://blog.csdn.net/hjwang1/article/details/79943815https://zhuanlan.zhihu.com/p/59640437Canny算子图像的边缘是指图像局部区域亮度变化显著的部分,该区域的灰度剖面一般可以看作是一个阶跃,即从一个灰度值在很小的缓冲区域内急剧变化到另一个灰度相差较大的灰度值。Canny是目前最优秀的边缘检测算法...

2019-11-01 15:00:41 1117

原创 数字图像处理(自适应中值滤波)

自适应中值滤波常规的中值滤波在噪声密度不是很大的情况下(噪声出现的概率小于0.2时),性能很好,但是当概率较大时,常规的中值滤波处理完之后仍然存在噪声并且丢失了细节。自适应中值滤波器在进行滤波处理时,会根据某些条件来改变S的尺寸。滤波器输出的是一个数值,该数值用来表示(x,y)的像素值。算法原理算法的原理如书中p209中所示:其中要使用到一个重要函数ordfilt2():Matla...

2019-10-31 14:27:31 7307 7

原创 数字图像处理(修正的阿尔法均值滤波)

修正的阿尔法均值滤波统计排序滤波器的响应基于由该滤波器包围的图像区域中的像素值的排序,为一种非线性滤波器。常用的非线性滤波器有中值滤波器、、自适应中值滤波、最大值(最小值)滤波器、中点滤波器与修正的阿尔法均值滤波器等。修正的阿尔法均值滤波器类似于去掉最高分与去掉最低分评价一个选手水平的方法,即将滤波范围内的数据进行排序,从大到小的顺序去除d个数据,从小到大的顺序去除d个数据,将剩下的数据计算均...

2019-10-31 11:33:27 6876 2

原创 数字图像处理习题(直方图均衡化)

直方图直方图可以简单地视为h(rk)=nk或者p(rk)= nk/MN对应于rk的图形。分析如下书中P73图可以得出结论:若一幅图像的像素倾向于占据整个可能的灰度级并且分布均匀,则该图像具有较大的对比度。直方图均衡化直方图均衡化就是将一已知概率密度分布的图像,经过某种变换变成一幅均匀概率密度分布的新图像,其结果为扩展了象元取值的动态范围,从而达到增强图像对比度的效果直方图均衡化原理ht...

2019-10-30 14:03:13 10237

原创 数字图像处理习题(连通分量的标记)

连通成分的标记原理连通成分是给二值图像中的每个连通区域标上一个特定标号的算法,该算法可以用来对图像中的目标进行定位和计数。邻域:中间像素与他周围像素之间的位置关系决定了是几邻域连接,如下图表示了4邻域与8邻域算法思路使用的数据结构为队列,用元组模仿队列,将像素的坐标值入队1、从左到右,从上到下遍历每一个像素,判断该像素的像素值是否为1,并且判断它是否被标记过,如果没有被标记过并且像素...

2019-10-30 11:04:41 2833

空空如也

空空如也

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

TA关注的人

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