软件编程
zhanglei_edu
这个作者很懒,什么都没留下…
展开
-
矩阵旋转
class Transform {public: vector> transformImage(vector> mat, int n) { // write code here for(int i=0;i<n/2;i++)//层次; { int last=n-i-1; for (int j=i;j<last;j++) { int tmp=mat[i][j原创 2015-08-23 20:59:48 · 384 阅读 · 0 评论 -
有序数组合并
题目描述有两个从小到大排序以后的数组A和B,其中A的末端有足够的缓冲空容纳B。请编写一个方法,将B合并入A并排序。给定两个有序int数组A和B,A中的缓冲空用0填充,同时给定A和B的真实大小int n和int m,请返回合并后的数组。class Merge {public: vector mergeAB(vector A, vector B, int n, i原创 2015-08-26 16:07:09 · 311 阅读 · 0 评论 -
约瑟夫问题I
题目描述约瑟夫问题是一个非常著名的趣题,即由n个人坐成一圈,按顺时针由1开始给他们编号。然后由第一个人开始报数,数到m的人出局。现在需要求的是最后一个出局的人的编号。给定两个int n和m,代表游戏的人数。请返回最后一个出局的人的编号。保证n和m小于等于1000。测试样例:5 3返回:4class Joseph {public: int getResul原创 2015-08-26 20:31:22 · 570 阅读 · 0 评论 -
树的宽度
int treeWidth(TreeNode* root){ if (root==NULL) { return 0; } const int Max=1000; TreeNode* array[Max]; int front=0,rear=0,num_p=rear;//num_p记录该层最后一个结点的位置; TreeNode* pNode=root; array[rear]=原创 2015-08-27 10:37:49 · 651 阅读 · 0 评论 -
GPU编程配置
前提是安装好驱动软件以及SDK,并配置好环境变量,建议参照http://www.cnblogs.com/viviman/archive/2012/11/02/2775101.html。上面环境配置好了,以后需用到GPU编程时候,只需要执行下面步骤即可。 1、新建Win32 console application项目,选择空项目;2、在源文件中添加新的.cpp文件,并重命名为.cu文件;原创 2015-08-27 10:42:30 · 489 阅读 · 0 评论 -
最高分是多少(华为16年研发试题)
老师想知道从某某同学当中,分数最高的是多少,现在请你编程模拟老师的询问。当然,老师有时候需要更新某位同学的成绩. 输入描述:输入包括多组测试数据。每组输入第一行是两个正整数N和M(0 < N <= 30000,0 < M < 5000),分别代表学生的数目和操作的数目。学生ID编号从1编到N。第二行包含N个整数,代表这N个学生的初始成绩,其中第i个数代表ID为i的学生的成绩接下原创 2015-08-27 15:14:55 · 609 阅读 · 2 评论 -
简单错误记录(华为16年研发试题)
开发一个简单错误记录功能小模块,能够记录出错的代码坐在的文件名称和行号。 处理:1.记录最多8条错误记录,对相同的错误记录(即文件名称和行号完全匹配)只记录一条,错误计数增加;(文件所在的目录不同,文件名和行号相同也要合并)2.超过16个字符的文件名称,只记录文件的最后有效16个字符;(如果文件名不同,而只是文件名的后16个字符和行号相同,也不要合并)3.输入的文件可能带路径,记录原创 2015-08-27 17:32:51 · 1804 阅读 · 1 评论 -
扑克牌大小(华为16年研发试题)
[编程题] 扑克牌大小扑克牌游戏大家应该都比较熟悉了,一副牌由54张组成,含3~A,2各4张,小王1张,大王1张。牌面从小到大用如下字符和字符串表示(其中,小写joker表示小王,大写JOKER表示大王):) 3 4 5 6 7 8 9 10 J Q K A 2 joker JOKER 输入两手牌,两手牌之间用“-”连接,每手牌的每张牌以空格分隔,“-”两边没有空格,如:4 4 4 4原创 2015-08-27 17:34:46 · 1351 阅读 · 0 评论 -
输入有符号整型数组,去掉重复值后,按照升序输出整型数组
第二题:数组排序描述:用户输入有符号整型数组(十进制),去掉重复值后,按照升序输出整型数组(十进制)。运行时间限制:无限制内存限制:无限制输入:整数N,表示数组的个数;N个整数,整数之间以空格隔开输出:去掉重复后原创 2015-08-28 20:22:44 · 1684 阅读 · 0 评论 -
给出一个字符串形式表达的二叉树,求出指定节点深度
给出一个字符串形式表达的二叉树,求出指定节点深度。输入的树形结构字符串格式为:1、以父节点、左子树、右子树表示的二叉树;每个父节点不会超过两个子节点;2、树的每一个节点采用单个字母表示;树的层次采用数字表示,树根的层次为1,下一层为2,不会超过9层;3、字符串以“节点名称 层次数 节点名称 层次数…”的形式出现,同一个父节点下,先出现的为左子树。例如字符串“a1b2c2d3e3原创 2015-08-29 10:32:07 · 2850 阅读 · 5 评论 -
打印数组的全排列
定义一个数组,编程打印它的全排列。比如定义:#define N 3 int a[N] = { 1, 2, 3 };则运行结果是:$ ./a.out1 2 3 1 3 2 2 1 3 2 3 1 3 2 1 3 1 2程序的主要思路是:把第1个数换到最前面来(本来就在最前面),准备打印1xx,再对后两个数2和3做全排列。把第2个数换到最前面来,准备打转载 2015-08-30 11:40:25 · 799 阅读 · 0 评论 -
统计文件中的单词
统计文件中的单词#include "stdafx.h"#include #include #include #include using namespace std;int _tmain(int argc, _TCHAR* argv[]){ ifstream in; in.open("1.txt"); mapword; string s; while(in>>s)原创 2015-09-26 11:04:12 · 352 阅读 · 0 评论 -
查找文件夹中的后缀文件
//函数调用;string framesFolder=fasta文件的路径;string fileNames[10000] ;int fileCount = 0 ;//初始值;getFileNames( fileNames, fileCount, framesFolder ) ;//返回txt文件名fileNames;文件个数fileCount;//函数声明;void getFi原创 2015-09-29 15:38:44 · 475 阅读 · 0 评论 -
strchrMy的实现
请写出strchr的实现函数功能:找出在字符串str中第一次出现字符ch的位置,找到就返回该字符位置的指针(也就是返回该字符在字符串中的地址的位置),找不到就返回空指针(就是NULL)const char* strchr(const char* str , char ch)const char* strchr(const char* str , char ch) {原创 2015-10-06 21:43:40 · 352 阅读 · 0 评论 -
go语言写的并行排序算法(快速排序)
package mainimport "fmt" // threads 线程标识创建线程的个数func quicksort(nums []int, ch chan int, level int, threads int) { level=level*2 if len(nums) == 1 { ch<- nums[0]; close(ch); return }//ch<-nums[原创 2015-11-05 11:40:37 · 972 阅读 · 0 评论 -
二叉树寻找给定结点p的下一个结点
题目描述请设计一个算法,寻找二叉树中指定结点的下一个结点(即中序遍历的后继)。给定树的根结点指针TreeNode* root和结点的值int p,请返回值为p的结点的后继结点的值。保证结点的值大于等于零小于等于100000且没有重复值,若不存在后继返回-1。/*struct TreeNode { int val; struct TreeNode *le原创 2015-08-26 12:54:33 · 594 阅读 · 0 评论 -
输出单层结点
题目描述对于一棵二叉树,请设计一个算法,创建含有某一深度上所有结点的链表。给定二叉树的根结点指针TreeNode* root,以及链表上结点的深度,请返回一个链表ListNode,代表该深度上所有结点的值,请按树上从左往右的顺序链接,保证深度不超过树的高度,树上结点的值为非负整数且不超过100000。/*struct TreeNode { int val;原创 2015-08-25 20:20:27 · 404 阅读 · 0 评论 -
matlab videoToFrames 视频切割成帧
%% videoToFrames videoPath='.\videoDatasets\'; framePath='.\frames\'; videoList=dir([videoPath,'*.avi']); video_num=length(videoList); for j=1:video_num %多个原创 2014-12-30 14:56:04 · 577 阅读 · 0 评论 -
matlab framesToVideo 同时显示多路视频
%% framesToVideo videoPath1='.\videoDatasets\video1\'; videoPath2='.\videoDatasets\video2\'; file=dir([videoPath1,'*.jpg']); file_=dir([videoPath2,'*.jpg']); writerOb原创 2014-12-30 14:59:15 · 1200 阅读 · 1 评论 -
如何显示光流图 opencv
主调函数:Mat color;MotionToColor(flow,color);//flow 中为Mat类型,其中的值为UV,float类型imshow("1",color);waitKey(0);#define UNKNOWN_FLOW_THRESH 1e9void MakeColorWheel(vector &colorwheel) { int RY = 15; int Y原创 2014-12-30 15:09:44 · 2742 阅读 · 0 评论 -
c++对结构体排序(仿函数)
struct abc{ int a; double b; int c;};class op{public: bool operator()(abc a,abc b){ if (a.a>b.a) { return true; } else{ return false; } }};结构体中按照第一个元素进行排序 比如:op c原创 2014-12-30 15:22:35 · 958 阅读 · 0 评论 -
链表高效删除
题目描述实现一个算法,删除单向链表中间的某个结点,假定你只能访问该结点。给定带删除的节点,请执行删除操作,若该节点为尾节点,返回false,否则返回true#include "stdafx.h"#include #include "string.h"#include using namespace std;struct ListNode { int原创 2015-08-23 22:14:53 · 363 阅读 · 0 评论 -
链表排序
题目描述编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前给定一个链表的头指针 ListNode* pHead,请返回重新排列后的链表的头指针。注意:分割以后保持原来的数据顺序不变。/*struct ListNode { int val; struct ListNode *next; ListNode(in原创 2015-08-24 10:08:25 · 339 阅读 · 0 评论 -
链表相加
题目描述有两个用链表表示的整数,每个结点包含一个数位。这些数位是反向存放的,也就是个位排在链表的首部。编写函数对这两个整数求和,并用链表形式返回结果。给定两个链表ListNode* A,ListNode* B,请返回A+B的结果(ListNode*)。测试样例:{1,2,3},{3,2,1}返回:{4,4,4}/*struct ListNode {原创 2015-08-24 15:48:15 · 319 阅读 · 0 评论 -
利用栈判断链表是否为回文
题目描述请编写一个函数,检查链表是否为回文。给定一个链表ListNode* pHead,请返回一个bool,代表链表是否为回文。测试样例:{1,2,3,2,1}返回:true{1,2,3,2,3}返回:falseclass Palindrome {public: bool isPalindrome(ListNode* pHead) {原创 2015-08-24 16:16:16 · 1146 阅读 · 1 评论 -
实现栈中元素的排序
题目描述请编写一个程序,按升序对栈进行排序(即最大元素位于栈顶),要求最多只能使用一个额外的栈存放临时数据,但不得将元素复制到别的数据结构中。给定一个int[] numbers(C++中为vector),其中第一个元素为栈顶,请返回排序后的栈。请注意这是一个栈,意味着排序过程中你只能访问到第一个元素。测试样例:[1,2,3,4,5]返回:[5,4,3,2,1]c原创 2015-08-24 21:39:37 · 771 阅读 · 0 评论 -
链表的递归逆序输出,和链表的逆序
class backward{public: void backwardSeq(ListNode* pHead) { if (pHead==NULL) { return ; } else { backwardSeq(pHead->next); coutval); } }};原创 2015-08-24 22:14:47 · 547 阅读 · 0 评论 -
字符串中的数字相加
class addNum{public: int addStrNum(string str) { int j,num,sum=0; for (int i=0;i<str.length();) { if (str[i]='0') { num=(str[i]-'0'); ++i; while(i='0') { num=num*1原创 2015-08-25 10:30:07 · 1160 阅读 · 0 评论 -
猫狗收容所
题目描述有家动物收容所只收留猫和狗,但有特殊的收养规则,收养人有两种收养方式,第一种为直接收养所有动物中最早进入收容所的,第二种为选择收养的动物类型(猫或狗),并收养该种动物中最早进入收容所的。给定一个操作序列int[][2] ope(C++中为vector>)代表所有事件。若第一个元素为1,则代表有动物进入收容所,第二个元素为动物的编号,整数代表狗,负数代表猫;若第一个元素为原创 2015-08-25 11:42:25 · 669 阅读 · 0 评论 -
二叉树平衡检查(递归)
题目描述实现一个函数,检查二叉树是否平衡,平衡的定义如下,对于树中的任意一个结点,其两颗子树的高度差不超过1。给定指向树根结点的指针TreeNode* root,请返回一个bool,代表这棵树是否平衡。/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *rig原创 2015-08-25 15:20:07 · 372 阅读 · 0 评论 -
判断是否为排序二叉树BST(非递归算法)
题目描述请实现一个函数,检查一棵二叉树是否为二叉查找树。给定树的根结点指针TreeNode* root,请返回一个bool,代表该树是否为二叉查找树。/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) :原创 2015-08-26 11:09:42 · 2222 阅读 · 0 评论 -
c++计算程序运行时间
clock_t startTime = clock() ;//要测试的代码;cout原创 2016-01-22 19:48:56 · 519 阅读 · 0 评论