- 博客(70)
- 资源 (15)
- 收藏
- 关注
原创 KMP算法
###对于主串长度为m,模式串长度为n的匹配,使用KMP算法复杂度为O(m+n)#include<iostream>#include<string>#include<vector>using namespace std;//首先构建next矩阵,用于确定重新匹配时模式串开始的位置void get_nextval(const char* ptrn,...
2018-09-25 17:08:39
992
原创 归并排序
#include<iostream>#include<vector>using namespace std;//将两个排好序的序列合并void merge(vector<int>& data, int start, int mid, int end){ vector<int> tmp(end - start + 1); int...
2018-09-21 09:56:22
233
原创 动态规划---纸币组合问题
题目:假设银行里一共有n种硬币,第一种硬币的价值为V1。假设想把k元兑换成零钱,一共有多少种兑换方案。例如,一共有1,2,5三种硬币,k = 5,则有以下兑换方案:11111,1112,122,5。共有4中兑换方案。 动态规划问题最重要的是要找到状态转移方程!!! 用dp[i][sum]表示使用前i种硬币来组合sum这些钱有多少种兑换方案。那么dp[i][sum] = dp[...
2018-04-24 10:29:00
4507
原创 最大子序列和问题
给定整数A1,A2,A3······An(可能有负数),求序列中子序列和的最大值。(为方便起见,若所有整数都为负数,则最大子序列和为0)int MaxSubSequenceSum(vectorint> A){ int thisSum, maxSum; thisSum = maxSum = 0; for (size_t i = 0; i < A.size(); i+
2018-01-04 11:36:15
296
原创 快速选择---选择数组中第k个最小值
参考《数据结构与算法分析》186页,按照快速排序的思路进行找出第k个最小值,其中只保证数组中第k-1个值为第k个最小值。(同样,第k个最大值为第size - k + 1个最小值)#include#include#define cutOff 3using namespace std;//三数中值分割方法int Media3(vectorint>& vecUnsort, int
2018-01-04 10:10:40
965
原创 快速排序和插入排序
基于《数据结构与算法分析》182页,写的快速排序。对于枢纽元的选择使用三数中值分割法。#include<iostream>#include<vector>#define cutOff 3using namespace std;//三数中值分割方法int Media3(vector<int>& vecUnsort, int left, int right){ int center =
2018-01-03 16:48:00
589
原创 数组中只出现一次的数字
一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。//可以用位运算实现,如果将所有所有数字相异或,则最后的结果肯定是那两个只出现一次的数字异或的结果,所以根据异或的结果1所在的最低位,把数字分成两半,每一半里都还有只出现一次的数据和成对出现的数据这样继续对每一半相异或则可以分别求出两个只出现一次的数字void FindNumsAppearOnce(vect
2017-12-26 10:40:51
205
原创 滑动窗口中的最大值
给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5};针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个:{[2,3,4],2,6,2,5,1}, {2,[3,4,2],6,2,5,1}, {2,3,[4,2,6],2,5,1},{2,3
2017-12-14 20:00:10
287
原创 栈
1.栈的压入弹出,pushV序列表示栈的压入顺序,判断popV序列是否是该栈的一种弹出顺序//大致思路就是,首先按照pushV的顺序压入栈,当栈顶和popV的值相同时出栈。判断栈最后是否会有剩余序列bool IsPopOrder(vector<int> pushV, vector<int> popV) { stack<int> tmpStack; int i = 0; in
2017-12-14 17:11:18
176
原创 基数排序
基数排序详见《数据结构与算法分析》40页//待排序vector中数的最大位数int maxbit(const vector<int>& unSort){ int maxb = 0; for (int i = 0; i<unSort.size(); i++) { int tempMaxb = 1; int tempNum = unSort[i
2017-12-13 16:19:28
227
原创 链表
1.输入一个链表,从尾到头打印链表每个节点的值vector<int> printListFromTailToHead(ListNode* head) { vector<int> dst; while (head != nullptr) { dst.push_back(head->val); head =...
2017-12-09 11:12:08
187
原创 Ubuntu16.04 MatConvNet-1.0-beta25 Matlab2017a GPU cuDNN编译
使用Matlab2017a对MatConvNet-1.0-beta25的GPU编译过程可参考MatConvNet官网,在Ubuntu中一般来说cuda路径和cudnn路径一般是一个路径。但是编译之后会出现一个问题:Invalid MEX-file ‘/home/user/matlab/matconvnet-1.0-beta25/matlab/mex/ vl_nnconv.mexa64’;这个问题是
2017-11-25 21:20:31
1988
原创 使用Anaconda安装库文件、控制台运行Python文件、显示Caffe网络结构
安装库文件: 以安装XGBoost为例,如果要使用XGBoost分类器,首先要在Python中安装XGBoost库文件。如果使用Anaconda安装的话,首先启动cmd窗口,进入到.\Anaconda2\Scripts目录下,然后在控制台运行anaconda search -t conda xgboost然后便会出现各个版本的xgboost,如下图。 选择自己合适的版本(以Win-64为
2017-11-15 19:43:35
1309
原创 字符串-最长公共子序列(LCS)问题
题目:求两个字符串的最大公共子序列(可以不连续)的长度,并输出这个子序列。例如:输入 googleg和elgoog 输出 goog 4 输入 abcda和adcba 输出 aba 3 而为了得到相同的子序列,需要根据回溯路径,写出匹配字串,如下图,绿色的部分就是路径回溯的结果。 代码如下:int SearchMaxLengthSequence(string s1,...
2017-10-11 21:13:40
3376
原创 整数中1出现的次数(从1到n整数中1出现的次数)
本题可分为两道题,如下: 题目描述:求出1~n的整数中1出现的次数,例如1~13中包含1的数字有1、10、11、12、13。此时如果按照1出现的次数,那么将会有6次。如果是含有1的数字的个数,则为5个。下面将分别按照不同的方式来给出代码。1. 1~13中含有1的数字为5个int NumberOf1Between1AndN_Solution1(int n){ int bit = -1;
2017-09-27 22:00:32
393
转载 输出任意字符串中最长的回文长度
如题,查找字符串中最长的回文,并输出该回文的长度。例如: 输入:12ABBA 输出:4 输入:51233214 输出:6#include<string>#include<iostream>#include <algorithm>using namespace std;...
2017-09-26 09:21:52
987
转载 二维数组中的查找
题目描述: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。分析:矩阵是有序的,从左下角来看,向上数字递减,向右数字递增,因此从左下角开始查找,当要查找数字比左下角数字大时。右移要查找数字比左下角数字小时,上移代码:class Solution {public: b
2017-09-21 09:16:50
265
转载 输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。
题目描述: 输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。 示例1: 输入:9876673 输出:37689#include<iostream>using namespace std;int main(){ int n; int a[10]={0}; int num=0; cin>>n ; while(n)
2017-09-20 20:16:16
1704
转载 剑指offer--放苹果(递归)
题目描述 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。输入 每个用例包含二个整数M和N。0<=M,1<=N。解题分析:设f(m,n) 为m个苹果,n个盘子的放法数目,则先对n作讨论, 当n>m:必定有n-m个盘子永远空着,去掉它们对摆放苹果方法数目不产生影响。即if(...
2017-09-19 21:35:17
3695
转载 输入正整数A和正整数B,输出A和B的最大公约数和最小公倍数。
最小公倍数 = A * B / 最大公约数; 求解最大公约数的其中一中方法是辗转相除法。辗转相除法原理:如果a是任一整数而b是任一大于零的整数,则我们总能找到一整数q,使a=bq+r;并且a与b的最大公约数和b与r的最大公约数是相同的。由此可得链接:https://www.nowcoder.com/questionTerminal/22948c2cad484e0291350ab
2017-09-17 19:33:28
2111
转载 输入任意一正整数,输入该数的质数相乘的形式
#include<stdio.h>#include<iostream>int main(){ int i = 2, sum, d; scanf_s("%d", &sum); printf("%d=", sum); while (i<sum) { if (sum%i != 0) i = i + 1;
2017-09-17 19:26:21
903
原创 跳台阶问题--斐波那契数列
本篇文章有两道题。第一题:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。对于本题,前提只有 一次 1阶或者2阶的跳法。 a.如果两种跳法,1阶或者2阶,那么假定第一次跳的是一阶,那么剩下的是n-1个台阶,跳法是f(n-1); b.假定第一次跳的是2阶,那么剩下的是n-2个台阶,跳法是f(n-2) c.由a\b假设可以得出总跳法为: f(n) = f(
2017-09-16 10:35:52
593
转载 剑指offer--构建乘积数组
给定一个数组A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],其中B中的元素B[i]=A[0]A[1]…A[i-1]*A[i+1]…*A[n-1]。不能使用除法 B[i]的值可以看作下图的矩阵中每行的乘积。 下三角用连乘可以很容求得,上三角,从下向上也是连乘。 因此我们的思路就很清晰了,先算下三角中的连乘,即我们先算出B[i]中的一部分,然后倒过来按上三角中的分布规律,...
2017-09-15 19:44:36
293
转载 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
//首先看十进制是如何做的: 5+7=12,三步走 //第一步:相加各位的值,不算进位,得到2。 //第二步:计算进位值,得到10. 如果这一步的进位值为0,那么第一步得到的值就是最终结果。//第三步:重复上述两步,只是相加的值变成上述两步的得到的结果2和10,得到12。//同样我们可以用三步走的方式计算二进制值相加: 5-101,7-111 第一步:相加各位的值,不算进位,得到010,二进制每
2017-09-15 09:04:49
360
原创 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
-1用二进制怎么表示? 原码是10000001 反码是11111110 补码是11111111 补码是计算机的一般表示方式大神代码:class Solution {public: int NumberOf1(int n) { int count = 0; while(n!= 0){ count++;
2017-09-14 20:13:29
296
转载 new出的对象数组必须要用delete[]删除,而普通数组delete和delete[]都一样
转载自http://www.cnblogs.com/sura/archive/2012/07/03/2575448.html1.在释放堆栈中c++基本数据(包括int,char…..结构体等)的存储空间时,不管是否是数组用delete都不会有错!而且能正常释放所有内存,不会导致内存泄露! 2)对象数组不能用delete,只能用delete[];// 程序B class CTextClassA
2017-08-28 10:12:48
2989
原创 MFC调用dll文件
在MFC中调用dll文件的代码如下: 其中值得注意的是,在if(MyImageProcess(showImg) == FALSE) 一句中,输入的变量最好使用全局变量,如果使用内部变量,在Debug模式下,函数结束后会出现debug assertion failed错误,Release下正常运行//获取dll路径 char strModlePath[256]; GetModuleF
2017-07-07 10:13:14
1500
原创 MatConvNet框架下mnist数据集测试
当cnn_mnist.m运行完成后,我们再打开data文件夹里的mnist-baseline-simplenn文件夹,就会发现里面多了一个pdf文件和20个net-epoch-(1~20).mat,这20个net-epoch-(1~20).mat,就是经过每一轮训练后,获得的训练好的模型。 如果在训练的时候选择了opts.batchNormalization为true的话,即进行批量归一化,那么生
2017-07-03 16:14:13
1585
原创 Invalid MEX-file 'C:\Users\zs\Desktop\CSR-DCF\mex\mex_extractforeground.mexw64': 找不到指定模块
在Windows平台下在使用MATLAB编译c++源程序,生成相应的格式后,在调用的时候,有的时候会出现这样的错误:Invalid MEX-file ‘C:\Users\zs\Desktop\CSR-DCF\mex\mex_extractforeground.mexw64’: 找不到指定模块 例如: 这时去看源代码,感觉也没有错误。原因在于缺少dll文件,有可能环境变量中没有添加相应的路径
2017-06-24 12:50:39
5321
2
转载 CxImage类型与Mat类互转
转自http://blog.youkuaiyun.com/liulina603/article/details/43053957CxImage转Mat CxImage img; uint8_t *buf=NULL; int32_t len=0; bool rs =img.Encode(buf,len,CXIMAGE_FORMAT_BMP); cv::Mat temp2;
2017-05-23 20:12:28
725
原创 MFC Picture控件显示Mat类或IplImage指针
本方法通过OpenCV中已经抛弃的一个类来在MFC中显示。 这个类的名称为CvvImage,具体代码实现如下:CvvImage.h文件#pragma once#ifndef CVVIMAGE_CLASS_DEF#define CVVIMAGE_CLASS_DEF#include "opencv.hpp"class CvvImage{public: CvvImage(); virtu
2017-05-23 19:57:48
692
转载 k-means算法MATLAB和opencv代码
转自与http://blog.youkuaiyun.com/autocyz/article/details/46773143 该博客分两篇,第一篇讲解了K均值的原理,后一篇给出了实现的MATLAB代码和C++代码,还提供了聚类的效果。 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 功能:实现如何利用Kmeans聚类实现图像的分割; 时间:201
2017-05-15 10:44:27
656
原创 C++调用MATLAB程序
此处采取的方法是 使用matlab函数生成为动态链接库,然后在c++中调用该动态链接库。 主要参考博客:http://blog.youkuaiyun.com/u010910436/article/details/45919457与http://www.codesec.net/view/432735.html在期间遇到的问题: 1.在使用mcc -W cpplib:plotsintest -T link:li
2017-05-08 11:54:38
505
原创 float**类型与float*
先上图: 直接将num[0][0]的地址赋给pt只能得到最后一维的值,原因是num的之前维度的值存贮是不连续的,所以无法得到其他维度的值,只能通过下面的方式,在每个维度进行地址赋值。如下:除此之外,可以另行开辟空间,将num[i][j]的值存储到pt[i]中。例如:
2017-03-24 18:35:46
10650
原创 基于OpenCV的图像配准之后的透视变换
在通过SIFT、SURF或者ORB进行特征点检测,生成了特征点和特征点描述子的vector后,如何进一步的进行对于图像的矫正。这个时候就用到了opencv的另外两个函数findHomography和perspectiveTransform。 findHomography是用来计算两张图像的单应性矩阵的。opencv的官方文档中有详细的使用说明: 前两个参数分别是通过之前的特征检测找到
2017-03-20 20:41:53
4247
原创 类中const类型变量初始化
由于i是const类型,所以无法直接赋值。但是可以通过另外一种初始化方式进行赋值,如下图所示:class MyClass{public: MyClass(); ~MyClass();private: const int i;};MyClass::MyClass():i(0){}MyClass::~MyClass(){}那么,对于类中const类型的数组的初始化:
2017-03-08 15:33:05
1942
原创 摄像机标定与三维重建
学习三维重建一段时间了,现在对于学到的东西做一下总结。1.标定对于三维重建的问题,首先要做的就是对于摄像机进行标定。对相机进行标定的主要目的是为了使拍摄的图片更加符合规范,可以更准确地进行后续的图像配准和三维重建。对于双目相机而言,标定就是为了求解相机的内外参数,然后将图像矫正为平行图像,还可以消除由于摄像机镜头带来的畸变。具体的细节部分就不讲了,可以自行查阅论文,都讲得很清楚。可以从此下载代
2017-03-03 20:45:47
3361
原创 结构风险最小化
经验风险用损失函数来计算。对于模式识别问题的损失函数来说,经验风险就是训练样本错误率。 结构风险最小化原则实际风险由两部分组成:经验风险(训练误差)和VC置信范围(VC confidence):学习机器的VC维及训练样本数有关。 VC维反映了函数集的学习能力,VC维越大则学习机器越复杂(容量越大)。结构风险最小化(SRM)的基本思想: 所谓的结构风险最小化就是在保证分类精度(经验风险)的同时,
2017-02-28 18:19:31
3312
转载 vs2012打开提示加载失败--该项目需要用户输入
装载地址:http://blog.youkuaiyun.com/navno1/article/details/22541571vs2012打开提示加载失败–该项目需要用户输入, (打开cocos2dx 2.2项目.sln ) 解决方法: 参考http://bbs.youkuaiyun.com/topics/390514959 下载http://www.microsoft.com/en-us/download/deta
2016-12-10 10:53:03
9735
1
转载 OpenCV 可自动调整参数的透视变换
转载地址:http://blog.youkuaiyun.com/wangyaninglm/article/details/41869535?locationNum=1&fps=1在shiter大牛的基础之上,对于他的程序做了一定的修改。 首先,通过两个循环使得霍夫变换两个参数:角度的分辨率和点个数的阈值可以变换,这样就不必对于每一张图像都手动的设置阈值。其次,过滤掉了两个距离很近的直线,使得能够正确找到物体的
2016-11-22 17:53:43
5128
3
核相关滤波器源码及论文
2017-03-31
KCF源码及论文
2017-03-29
摄像机标定与三维重建
2017-03-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人