- 博客(26)
- 收藏
- 关注
原创 剑指offer_27_去重全排列
class Solution {public: void rPermutation(int k, string cststr, vector<string> &rtvec) { if (k == cststr.size() - 1) rtvec.push_back(cststr); for (int i = k; i < cststr.size(); i++) ...
2018-06-14 09:26:21 207
原创 经典八大排序算法C++实现
#include <iostream>#include<vector>#include <algorithm>#include <typeinfo>using namespace std;//01冒泡排序void bubble_sort(int*input, int st, int ed){ int lenth = ed - st + 1; for ...
2018-06-13 22:44:33 299
原创 堆排序
图解堆排序:https://www.cnblogs.com/chengxiao/p/6129630.html//06堆排序//https://www.cnblogs.com/chengxiao/p/6129630.html//堆排序不开辟额外的内存,将数组的索引与堆对应起来,将数组看成一个逻辑结构上的堆,由于是完全二叉树,所以有几个特性,索引为s的节点的左子节点为2*s+1,//叶节点的数量和与非...
2018-06-13 16:27:59 173
原创 对线程池的理解
对线程池的理解: 想像一个体检场景,100位同学(s)在A屋,3位医生(d)在B屋(睡着觉),还有一位组织学生体检的老师(睡着觉)。管理员看了下B屋里的情况,叫醒老师说:3位医生空闲,可以叫人进去。老师看了一下是d1、d2、d3空闲着,于是老师叫s1准备,看到s1准备好过后请管理员叫醒了d1,d1开始为s1体检;老师接着叫s2准备,看到s2准备好过后请管理员叫醒了d2,d2开始为s2体检;老...
2018-04-22 15:30:14 444
原创 剑指offer_26_二叉搜索树与双向链表
题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。/*思路:将二叉搜索树convert为双向链表,尝试递归解决。递归关系:当访问到节点root时,root->left与转换后的左子树链表完成互指,root->right与转换后的右子树链表完成互指。根据题意,令返回值为最左节点,若root存在左子树,也就是左子树链表...
2018-03-09 14:04:09 150
原创 剑指offer_25_复杂链表的复制
题目描述输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)#include <iostream>#include <vector>#include<queue>using namespace std;...
2018-03-08 15:37:02 169
原创 剑指offer_24_二叉树中和为某一值的路径
题目描述输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径class Solution {public: vector<vector<int> > FindPath(TreeNode* root, int expectNumber) { vector<vector<int&...
2018-03-07 21:53:46 155
原创 剑指offer_23_二叉搜索树的后序遍历序列
#include <iostream>#include <vector>#include<queue>using namespace std;struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {...
2018-03-07 16:23:46 135
原创 剑指offer_22_从上到下打印二叉树
#include <iostream>#include <vector>#include<queue>using namespace std;struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {...
2018-03-06 22:16:39 127
原创 剑指offer_21_栈的压入弹出序列
题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)#include <iostream>#include<stack>#...
2018-03-06 21:38:24 124
原创 剑指offer_20_包含min函数的栈
题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。#include <iostream>using namespace std;class Solution {public: struct ListNode{ struct ListNode*next; int val; ListNode(int x, ListNode*p) :next(p), val...
2018-03-06 11:46:37 150
原创 剑指offer_19_顺时针打印矩阵
#include <iostream>#include <vector>using namespace std;class Solution {public:vector<int> printMatrix(vector<vector<int> > matrix) { vector<int> va; int tlx = 0, t...
2018-03-05 22:10:11 258
原创 剑指offer_17_树的子结构
题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)#include <iostream>#include <vector>#include<queue>using namespace std;struct TreeNode { int val; TreeNode *left; TreeNode *right; Tr...
2018-03-05 20:22:28 159
原创 剑指offer_16_合并两个排序的链表
题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。#include <iostream>using namespace std;struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};void append(...
2018-03-05 14:45:51 137
原创 剑指offer_15_反转链表
题目描述输入一个链表,反转链表后,输出链表的所有元素。#include <iostream>using namespace std;struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};class Solution {//递归实现public: ListN...
2018-03-05 10:44:24 164
原创 剑指offer_12_数值的整数次方
题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方#include <iostream>using namespace std;class Solution1 {//递归实现public: double Power(double base, int exponent) { if (base == 0)return 0;...
2018-03-04 16:30:38 137
原创 剑指offer_11_二进制中1的个数
题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。#include <iostream>using namespace std;class Solution1 {//递归实现public: int NumberOf1(int n) { unsigned int us_n = n; if (n == 0)return 0; return(us_n &...
2018-03-04 14:49:33 186
原创 剑指offer_06_旋转数组的最小数字(递归实现)
题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。#include <iostream>#include<vector>using name...
2018-03-02 17:22:07 278
原创 递归实现二分查找
题目:对于定一个升序的数组a,需要查找数n在数组a中的位置,若不存在n则返回-1。#include <iostream>using namespace std;int find(int n,int *a,int start,int end){ if (end == start)return a[end] == n ? end : -1; int mid = (end - start) ...
2018-03-02 15:00:22 1056
原创 剑指offer_04_重建二叉树
剑指offer第四题:重建二叉树题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。二叉树节点数据结构如下:struct TreeNode { int val; TreeNode *left; TreeNod...
2018-03-01 23:00:26 190
原创 使用libsvm中的svm_cross_validation函数进行交叉验证
在libsvm的使用中,为了得到更好的c、gama参数,可以通过多次使用libsvm中的svm_cross_validation函数进行参数寻优,下面是svm_cross_validation的一种使用方法:svm_problem的定义:struct svm_problem{int l;double *y;struct svm_node **x;};1.首先明白
2016-06-03 19:45:44 13301 7
转载 mfc静态链接库报错
问题fatal error C1189: #error : Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL ordo not use /MD[d]我的项目是标准Windows的Dll,导入了自己的几个头文件和
2016-05-03 16:26:28 482
转载 在ListCtrl控件中插入图标
在ListCtrl控件中插入图标值得注意的是:关联到ListCtrl的CImageList的生存时间要长于或等于你显示图标的ListCtrl的生存时间。也就是原博客中提到的:“顺便说一句,准备附属到CListCtrl控件的CImageList对象必须是全局性的,比如可以是类的成员,否则就算其他操作都都正确也看不到图标。”m_img_list定义为对话框的成员。下面是部分代码
2016-05-02 10:28:36 577
转载 VS2013 MFC 调用控制台 用于显示cout输出流
转自:http://blog.163.com/loveyingchun_1314/blog/static/238242512011112822233106/1、在项目自动生成的stdafx.h文件中添加下面头文件#include #include #include 2、把下面的函数加到你初始化的地方,然后你就可以使用printf函数了void InitConsol
2016-05-01 19:23:33 2258
原创 opencv中替换图片ROI矩形区域的方法
最近在做车牌识别的项目,需要将粗提取的车牌放到一个大一点的图片中,然后计算需要水平校正和垂直校正的角度,在此记录下来opencv中替换图片ROI矩形区域的方法。
2016-04-13 10:31:54 2136
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人