首页
学习
活动
专区
工具
TVP
发布

和蔼的张星的图像处理专栏

专栏作者
122
文章
141357
阅读量
30
订阅数
64. 最小路径和
给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 示例:
和蔼的zhxing
2019-11-04
3670
55. 跳跃游戏
给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。= 判断你是否能够到达最后一个位置。
和蔼的zhxing
2019-11-04
4150
readme.md
如题目所示,要求是根据所给的字符串命令,来渲染一个迷宫,并通过字符串输出。 程序简要思路如下:
和蔼的zhxing
2019-10-22
4540
跟踪算法性能测试_VOT数据集为例
快要开始写毕业论文了,算法性能测试不可避免,今天要写的这些东西大部分是在年前弄完的,趁热记录一下。
和蔼的zhxing
2019-03-14
1.8K0
3.linux多线程编程。
也是最近看YOLOV3的源码的时候接触到这里,demo()函数里是用到多线程编程的。我一开始是把线程这里是略掉的,后来发现实际上检测的函数就是通过线程来组织的,所以不得不看这里的知识,大部分的参考这篇文章,用自己的语言理解一遍写下来。
和蔼的zhxing
2019-02-25
1.3K0
12.YOLO系列算法详解
这是YOLO系列的第一篇,文章发表在CVPR2016上,论文链接:YOLOV1. 摘要指出了文章的主要创新之处:把分类问题转换为回归问题,使用一个卷积神经网络就可以直接预测物体的bounding box和类别概率。 算法的优点有很多:
和蔼的zhxing
2018-12-26
2.4K0
秋招记录
今天9月29号,昨天下午签了华为,软件开发,薪资白菜价,不过也可以接受。因为想留在西安,华为基本上算是最好的选择了,所以暂时也不打算在找了,秋招算是结束了。 明天准备回家了,今天没事来记录一下。
和蔼的zhxing
2018-10-10
8460
剑指offer刷题记(C++版本)
也算是临时抱佛脚了吧,3月之前刷了lintcode100多道题吧,后来发文章什么的就放下了,最近秋招在即在牛客网上想着把剑指offer这本书刷完,尽量早刷完吧,最近也很忙。
和蔼的zhxing
2018-09-04
8780
图像旋转即c++实现
主要还是考虑面试的时候会不会用到,刚才好好看了下旋转的这个思路,其实和图像缩放的思路差不多的,主要的问题是要找到坐标的映射方式。 因为还是包含了一部分的公式,所以我再word里写好然后截图上来吧。
和蔼的zhxing
2018-09-04
1.1K0
14. 二分查找
给定一个排序的整数数组(升序)和一个要查找的整数target,用O(logn)的时间查找到target第一次出现的下标(从0开始),如果target不存在于数组中,返回-1。 如:在数组 [1, 2, 3, 3, 4, 5, 10] 中二分查找3,返回2。 思路:二分查找是基本功,可以写迭代也可以写while循环,目前还是习惯写while循环一些,但是这里的要求和一般的二分查找还不太一样,主要的原因是题目要求查找出第一个,也就是即使找到了一个,也不能立即返回,需要找到第一个才行,我想了一下,有一个思路:找到了把结果赋值给一个变量,然后end更新为mid-1(因为第一个肯定比这个索引小,如果存在的话),一直把所有的二分查找都找完,返回最新的一个查找的结果就是要求的第一个的索引:
和蔼的zhxing
2018-09-04
3490
365. 二进制中有多少个1
思路一:遍历每一位,如果是1,计数器加1即可,也是最容易想到的,需要遍历一次,可以用不断除2来做,也可以用位操作,后者更简单些:
和蔼的zhxing
2018-09-04
4940
646. 第一个独特字符位置
给出一个字符串。找到字符串中第一个不重复的字符然后返回它的下标。如果不存在这样的字符,返回 -1。 样例 给出字符串 s = "lintcode",返回 0。 给出字符串 s = "lovelintcode",返回 2。 1.最容易想到的一个思路,双层遍历,对于每一个字符,遍历整个字符串,如果能找到相同的(且不能是当前字符串),则不合要求,直接跳出内层循环检查下一个,只要找到第一个单独的,没有重复的,则可以返回索引,要注意一种情况是不存在这样的字符怎么呢,那就是遍历了所有的字符都没有找到这样一个字符,我们同样返回-1.
和蔼的zhxing
2018-09-04
3970
6. 合并排序数组
合并两个排序的整数数组A和B变成一个新的数组。 样例 给出A=[1,2,3,4],B=[2,4,5,6],返回 [1,2,2,3,4,4,5,6] 最简单的思路,先把两个数组的数据放入一个数组中,然后再排序就可以了,但是这样做时间复杂度还是挺高的,原因就在于人家本来就是已经排好数的数组了,所以更简单的方法是利用双指针(这里用迭代器),总是把指针指向小的那个元素放入新的数组,这样只需要两个数组都遍历一次加上一些简单的比较就好了。代码也简单明了,有些需要注意的地方写在下面。 利用while循环控制双指针: 这个有两个原因,一是++的条件我们是在if里的,二是循环变量也应该定义在循环外(终止循环后我们还要用到这些变量),这样的话用for循环就没有意义了。 只要有一个指针到头我们就应该跳出循环: 因为这样的话这个数组的数肯定都是小于另外一个数组指针之后的数的,我们只需要拿过来一个一个放入即可。就不需要再进行比较了,这样做也能节省时间。 code:
和蔼的zhxing
2018-09-04
5460
397. 最长上升连续子序列
给定一个整数数组(下标从 0 到 n-1, n 表示整个数组的规模),请找出该数组中的最长上升连续子序列。(最长上升连续子序列可以定义为从右到左或从左到右的序列。) 样例 给定 [5, 4, 2, 1, 3], 其最长上升连续子序列(LICS)为 [5, 4, 2, 1], 返回 4. 给定 [5, 1, 2, 3, 4], 其最长上升连续子序列(LICS)为 [1, 2, 3, 4], 返回 4. 思路:两边遍历,利用动态规划思路,每当找到一个子序列比上一次找到的大,就存储当前的子序列,注意最后遍历结束的时候还要比较一次,因为一般写的程序是发现下降的时候来检查上升序列是否是最大的,如果序列本身在最后没有下降,不检查肯定是不合理的,一开始就错在这里了,到vs里调试了一下看了每步的结果才弄对,两次遍历: code:
和蔼的zhxing
2018-09-04
5520
702. 连接两个字符串中的不同字符
连接两个字符串中的不同字符。 给出两个字符串, 你需要修改第一个字符串,将所有与第二个字符串中相同的字符删除, 并且第二个字符串中不同的字符与第一个字符串的不同字符连接。 样例 给出 s1 = aacdb, s2 = gafd 返回 cbgf 给出 s1 = abcs, s2 = cxzca; 返回 bsxz c++11中规定字符串可以直接相加,字符串对象可以加字符串常量,可以加字符。 string::find()函数很好用,这里恰好可以做一个总结: 共有下面四种函数原型: 四种函数原型返回值都是size_t,即字符串的一个索引,如果找到返回索引,如果找不到返回-1,即string::npos,打印出来是:4294967295。直接用npos就可以了。
和蔼的zhxing
2018-09-04
1.3K0
1.处理视频的两个类VideoCapture和VideoWriter
昨天要处理一个视频,只想要某些帧,手边没有剪视频的软件,正好想着写一个小程序来弄这个,也是很久没有写过opencv的程序了,练练手。 自然是先去查了一下视频读取和写视频的两个类,这个在opencv里封装好的,官方文档也给出了示例程序,中间遇到了一些问题,大概搞懂了这个了。
和蔼的zhxing
2018-09-04
4.7K0
655. 大整数加法
以字符串的形式给出两个非负整数 num1 和 num2,返回 num1 和 num2 的和。 注意事项: num1 和 num2 的长度都小于5100。 num1 和 num2 都只包含数字 0-9。 num1 和 num2 都不包含任何前导零。 您不能使用任何内置的BigInteger库内的方法或直接将输入转换为整数。 给定 num1 = "123",num2 = "45" 返回 "168" 思路:受408的启发,写了一个几乎一模一样的,不同的是是十进制的,而单用字符串无法处理十进制的,所以加的数都存入一个vector<Int>中,处理的时候再拿出来: 思路参见408的思路,代码如下,第一次写竟然写了20分钟,有一个小知识,string初始化不能为:
和蔼的zhxing
2018-09-04
5520
41. 最大子数组
给定一个整数数组,找到一个具有最大和的子数组,返回其最大和。 样例: 给出数组[−2,2,−3,4,−1,2,1,−5,3],符合要求的子数组为[4,−1,2,1],其最大和为6 要求时间复杂度为O(n) 想了一会并没有特别好的方法,想了一个用双指针的方法,通过了大部分的数据测试,但是还是有不通过的,我也不知道错在哪里,待会贴在下面,先说正确的方法。 思路 先分析下这个问题啊,主要有三种情况: *1. 全部是负数,这就简单了,找到最大的负数就可以了。 *2. 全部是正数,也很简单,应该是把所有的数加起来就可以了。 *3. 有正也有负,最大子数组肯定是正的。 基于这三种情况分析,我们可以采用这样的思路,先设置一个max,把这个数设置为INT_MIN,设置sum作为变量来记录当前得到的字数组的和,一旦sum>max,就可以更新max,这样就能保证max是最大字数组的和,那么字数组如何更新呢,前面说了,如果有正数的话,最后的结果肯定是正的,那么我们遍历数组,把sum先初始化为第一个数,然后,从第二个数开始,如果发现前面的sum是负的,那么就可以把前面的字数组抛弃掉了,以当前的这个数作为新的字数组的起点,如果发现是正的,当前的这个数加入子数组,以此类推,这样就能找到最大字数组了。(每一次遍历的最后更新max)。 这样说来不是很直观,我们可以注意这样一个事实:我们要找的子数组的前面的几个数(不管是几个),和肯定不能是负的,如果是负的,那么去掉岂不是得到的和更大,这样就能理解为什么一旦发现前面的字数组为负的话,就丢掉,如果全负的话这种方式也是适合的,因为每次都会舍弃,sum的值就是当前元素,每次更新max,这样得到的max就是最大的那个元素。 这样的话代码也是很简洁了:
和蔼的zhxing
2018-09-04
7020
55. 比较字符串
比较两个字符串A和B,确定A中是否包含B中所有的字符。字符串A和B中的字符都是 大写字母 样例 给出 A = "ABCD" B = "ACD",返回 true 给出 A = "ABCD" B = "AABC", 返回 false 先给出一个错误思路,用这个思路竟然通过了百分之95的测试数据,好可怕,嗯,是这样的,一开始我想的是,对于B中的每一个字母,我都去A中遍历,看是否有和B中一样的(同时用一个标志位指向找到的这个位置,保证不能B中相同的两个元素找到同一个A中的同一个元素,同时统计找到的字母个数,如果全部能找到,这个个数应该是等于B.size()的),乍一想这个思路还不错,其实有一个致命的错误,先看代码:
和蔼的zhxing
2018-09-04
1.2K0
44. 最小子数组
给定一个整数数组,找到一个具有最小和的子数组。返回其最小和。 样例 给出数组[1, -1, -2, 1],返回 -3 思路和最大子数组的思路基本是一样的,只是正数换成负数而已,简单说一下算法流程: 初始化min=nums[0]用来记录最小值,sum=0用来计算和; 遍历数组,做下面几件事: 1.sum+=nums[i]; 把当前这个数先放入子数组。 2.比较sum和min的大小,如果sum小于min,则用sum更新min。 3.如果sum>0,那么这一定不是,抛弃前面的数组,这里的抛弃只需令sum=0即可,不再把<=i索引的数计算在内。 注意:2,3的顺序不能颠倒,一定是先判断是否要更新min,然后在判断是否要抛弃前面的数组,这个和最大子数组的思路基本是一样的,这个写法更好理解一些。
和蔼的zhxing
2018-09-04
5860
点击加载更多
社区活动
RAG七天入门训练营
鹅厂大牛手把手带你上手实战
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档