自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 资源 (1)
  • 收藏
  • 关注

原创 求数组中三个只出现一次的数字

题目: 一个数组中,有三个数字只出现一次,其他数字均出现偶数次,求这三个数字。例如 数组为{1,2,3,4,5,6,4,5,6}。三个数字为1,2,3。         我的算法的基本思想是:按位将数组分为两组(采用循环,最多32位,从低位开始,逐一判断数组中的每一个数字),直到两组数据的亦或结果均不为零。这时,这三个数据被分到两组中,奇数个数据的数组的亦或结果为所求的一个数字。

2013-05-27 21:32:25 1052

原创 最长单调递增子序列问题

问题描述:找出n个数的数组中最长单调递增子序列。        解法一:先对数组进行排序,归并、堆、快速等都可以,时间复杂度为O(nlogn)。然后求这个新数组与原数组的最长公共子序列,动态规划解决,时间复杂度为O(n*n)。        解法二:以一个数组记录临时的最长序列,然后记录这个序列中的位置的变化。直接上代码:       void increase_LCS(){ co

2013-05-27 16:00:07 1210

原创 字符串组合解法

题目:输入一个字符串,输出该字符串中字符的所有组合。    举个例子,如果输入abc,它的组合有a、b、c、ab、ac、bc、abc。    这里提供一种新思路。算法的思想就是用整数的二进制表示字符串排列中是否有字符,1表示有该字符,0表示没有。    代码如下: char str[] = "abcd"; int length = strlen(str); int k =

2013-05-21 21:22:23 682

原创 解决算法问题时需要注意的问题(持续更新中)

最近在做算法题的时候,发现很多细节需要注意,总结如下:         1,非法输入:对输入变量,应该检查其是否合适,例如整数范围、指针是否为空。最常见的,函数输入字符串,一定要检查字符串是否为空。         2,函数返回结果有时可以以传入指针或者引用的形式来返回,这样函数的返回值可以携带其他信息。         3,涉及整数问题,一定要考虑正负数和0,切记不能默认是正数。其他

2013-05-06 19:42:34 681

原创 斐波那契(Fibonacci)数列问题

基本描述如下:F(0) = 0,F(1)=1,F(n)= F(n-1)+F(n-2),求F(n).采用递归的方法就不说了,很简单。递归是自上往下,有大量重复计算,如果我们采用自下往上的迭代方式,则会省去大量不必要计算,时间复杂度为O(n),代码如下:int fibonacci(int n){ int FFirst = 1; int FLast = 0; int Sum = 0; f

2013-05-06 14:33:24 829

原创 约瑟夫环问题

约瑟夫环问题可概述如下:n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始,每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字)。当一个数字删除后,从被删除数字的下一个继续删除第m个数字。求出在这个圆圈中剩下的最后一个数字。我自己使用队列实现了一下,代码如下,虽然简洁,但是时间复杂度不是很好。 deque dq; for (int

2013-05-05 21:08:35 649

原创 希尔排序学习心得

希尔排序是基于插入排序的一种快速排序算法,核心思想是使待排序序列中间隔为h(变化的)的元素都是有序的。        基本思路如下:假设待排序序列为A,长度为N(方便起见,可以理解为数组)。首先,取一个小于N的整数h1作为第一个增量,这样,序列就被分为h1组,所有距离为h1的数据分在一组中,对各组进行插入排序;然后,再取第二个增量h2(h2        综合网上大家意见,h初次取值(即h

2012-12-08 16:21:58 1312

原创 细说java数组Array

数组作为一种最基本的数据结构,用来存储同一类型的数据集合。可以通过下标访问数组中的没一个值,这与C++相同。       1,java数组的声明       也许大家都习惯了int[] a =new int[10]这种声明方式,但是java还会支持int a[]这种方式的。要想获得数组中元素的个数,可以使用a.length()方法。       2,数组的字符串化       可以

2012-05-16 17:03:22 856 1

原创 java与C++区别之String字符串

从概念上讲,java字符串就是Unicode字符序列。        1,提取子串       String类提取子串的方法是substring方法,例如:String str = "hello"; String substr = str.subdtring(0,4);,在这里,第一个参数是起始位置,第二个参数是不想复制的第一个位置或者说是截止位置。结果就是"hel"。

2012-05-15 15:19:08 5461

原创 java与C++的区别之基本数据类型

一,整型       1,在java中,整型的范围与运行java代码的机器无关,从而解决在不同平台之间移植的问题。例如:byte型占1个字节,short型占2个字节,int型占4个字节,long型占8个字节。相反,在C或者C++中,程序会根据不同的处理器现则最为有效的整型。这也是C++效率较高的一个原因。       2,在java中,没有任何无符号类型。这与C++不同。二,布尔类型

2012-05-14 22:02:48 2518

原创 VS2008下OpenSSL编译配置

网上有很多的VS2008下编译OpenSSL的文章,他们都写出了编译的基本步骤,但都忽略了一些重要问题,导致编译不成功。在这里我主要说明一下怎样解决编译过程中遇到的问题。    首先下载ActivePerl,下载最新版本(现在是最新),文件名为ActivePerl-5.14.2.1402-MSWin32-x86-295342.msi。安装。    下载OpenSSL,我用最新版本1.0.1

2012-04-19 15:29:20 5734 2

原创 C++ Access数据库连接、读写等

使用C++编程语言,连接对Access数据库进行操作,常用的方法有DAO和ADO两种方式,本文将介绍采用ADO的方式方位Access数据库。       先介绍一下ADO,ADO (ActiveX Data Objects) 是一个用于存取数据源的COM组建。它提供了编程语言和统一数据访问方式OLE DB的一个中间层。允许开发人员编写访问数据的代码而不用关心数据库是如何实现的,而只用关心到数据

2012-03-13 22:00:51 27706 1

原创 C++程序中调用exe文件的一种方法

我们在开发项目时,通常需要通过一个程序调用另一个程序,在这里介绍一中在C++程序中调用exe文件的方法:使用ShellExcecuteEx函数。      使用ShellExcecuteEx相对于其他的调用exe的方法,例如:使用system函数,使用exec或者是execv函数,使用WinExec函数,使用CreateProcess函数。前者在前台打开程序、控制权限等发面都有优势,这里首先介

2012-03-07 15:45:37 4647

原创 C++ 获取本机的Ip地址及主机名

下面是获取本机Ip和主机名的程序,在VC6下成功,注意连接静态库的方法,初始化SOCKET库函数的方法,以及取得gethostname的方法。 代码如下:#include #include #include using namespace std;#pragma comment(lib,"wsock32.lib")int main(){      char

2012-03-07 11:02:17 11952 2

转载 C++中,将.txt文件的编码由UTF-8转换为ANSI

1,将UTF-8转换为int Utf8ToAnsi(const char *pstrUTF8, char *pstrAnsi){    int i = 0;    int j = 0;    char strUnicode[200] = {0};    i = MultiByteToWideChar(CP_UTF8, 0, pstrUTF8, -1, NULL, 0);

2012-02-29 21:28:48 5459

原创 C++ string转换CString

我们在写程序时,常常会遇到类型转换的问题。现总结一些常见的类型转换。1,const char*(C风格字符串)与string之间转换:             (1) const char*可以直接对string类型赋值,例如:                       const char* pchar = "qwerasdf";                       s

2012-02-29 15:18:24 14146 6

原创 VS2008、QT及VTK实现DICOM图像三维重建之三:Win32工程配置

1,VS2008下新建一个win32控制台应用程序。命名为Reconstruction。2,QT相关配置       打开“项目”—“属性”—“配置属性”:       在“常规”选项中将“字符集”改为“使用多字节字符集”,这个主要是因为QT的原因。       在“调试”中将“环境”改为“PATH=D:\Qt\4.7.4\bin”(此处假设将Qt安装在D盘下,版本为4.7.4)。

2012-01-13 19:46:58 5581

原创 VS2008、QT及VTK实现DICOM图像三维重建之二:VS2008下VTK的安装使用

网上有很多VS2008下VTK安装配置的文章,这里也就不再赘述,主要提醒大家注意一下几点:1,选用VTK版本和CMake版本时,一定要注意CMake是否支持当前版本VTK及两者是否均支持VS2008。在我的工程中,我使用VTK-5.6.1,CMake版本时当时最新的2.8.6版本。Visual studio版本无疑就是VS2008了。 2,在用Cmake生成VS2008工程时,首先选择

2012-01-05 20:41:47 3141

转载 vs2008和QT及VTK实现三维重建之VS2008下QT的安装使用

一、安装所需软件1.下载安装VS2008,我想这个大家应该有的;2.在QT的官网下载qt-win-opensource-4.7.4-vs2008.exe,并安装。若安装在D盘,目录为D:\Qt\4.7.4;3.下载qt-vs-addin-1.1.9.exe,并安装。这三个软件安装好后,在VS的菜单界面上就会出现"QT"选项了。二、环境配置1. 用VS新建一个win32控制台

2012-01-05 20:16:12 2253

转载 进程间通信——模拟键盘输入

文章转载自:http://blog.csdn.net/bilter/article/details/5767372,作为对上一篇文章的补充,以使大家更好的理解进程间通信。模拟键盘按键 自动输入文字  键盘对于每个操作电脑的人员来说是最熟悉不过的了。键盘上的按键可分为两类 按下后会

2011-07-11 19:54:42 2145

原创 C#中利用剪贴板进行进程间通信

这篇文章中主要讲了大致实现过程,详细原理可以参照我的下一篇博客。一,这里首先介绍C#中的剪贴板操作:Clipboard.SetDataObject(string);,//将字符串存入剪贴板,//将信息存入剪贴板后,再在其他地方使用IDataObject iData = Clipb

2011-07-11 19:48:53 1373

原创 C++程序生成DLL步骤

下面详细介绍使用C++语言生成DLL过程:1,创建工程       首先选择“VC++”语言,然后选择“Win32项目”,然后选择工程位置和填写工程名称,然后点击”下一步“,再点击”下一步“,在”应用程序类型“中选择“DLL(D)”,然后点击”完成“,至此工程创建成功。 2,编写函数       如果工程名字是test,在源文件文件夹中会有一个”te

2011-06-18 22:14:00 1718

转载 关闭WPF主程序方法

声明:以下转自http://blog.csdn.net/peng_cheng_84/archive/2009/06/02/4237140.aspx。 很多人认为关闭应用程序应该很简单,例如WindowsForm里一个Application.Exit();方法就可以解决问题,但在WPF里面可别滥用,因为WPF里Application类没有该方法,倒

2011-06-17 15:50:00 1402

原创 C#BMP文件转JPG例程

在.NET平台上,使用C#语言可以方便的将BMP文件转化为JPG文件,转换方法如下:          string BMPFiles = “D://BMP//qq.bmp”         //BMP文件所在路径          BitmapImage BitImage = new BitmapImage(new Uri(BMPFiles, UriKin

2011-06-16 15:54:00 9864

原创 C#文件和文件夹创建与删除

结合自己最近写程序的心得,说一下C#文件和文件夹的创建与删除。 1,判断文件夹是否存在      介绍两种方法:     1,DirectoryInfo对象实例化后调用Exists进行判断。      例如:      DirectoryInfo FileFolder = new DirectoryInfo("D://my");       if (FileFolder .Exists)     

2011-06-16 15:37:00 1115

转载 C# 两种string类型详解

1,String类型和string类型     大家知道,C#中有String何string两种字符串类型。可以从以下几个方面了解其不同。      1,在.NET平台上,string是一种数据类型,String是一个类。      2,string类型是C#语言本身带的一种类(数据类型,为引用类型),而String是.NET Framework中的类。      3,

2011-06-14 18:50:00 1393

原创 强制类型转化总结

把最近写程序中用到的类型强制转化总结如下: MFC中: 1,CString转const char*     直接进行强制类型转化:(const char*)(CString),其中的CString用变量代替。 2,int转CString     转化如下:CString.Format("%d",int),其中的CString和int用变量代替。 3,CStr

2011-06-10 21:46:00 564

原创 C++ int型及其他值类型变量转string方法

在标准C++中,int型(包括其他值类型)转string方法很多,我感觉如下方法最为简便,介绍如下: 首先在文件开始添加如下代码:#include #include using namespa std; 然后具体实现如下: int Num = 10;stringstream strStream;strStreamstring name = strStream.s

2011-06-10 21:24:00 946

转载 MFC文件遍历类CFileFind例程

参考资料:http://blog.csdn.net/dodream/archive/2007/07/10/1684446.aspx文中对CFileFind类有很详细的介绍,本文主要介绍CFileFind使用的一个具体例程。void CDicomViewerDlg::OnBnClickedButtonFindfile(Cstring root)//实现对文件的遍历{ CFil

2011-06-04 20:49:00 1039

原创 error C2440: “初始化”: 无法从“DicomImage *”转换为“DicomImage”解决方案

问题出处:          用DCMTK编写一个MFC程序,目标是实现DICOM图像的显示。错误代码如下:DicomImage dcmImage = new DicomImage(dataset, xfer);           在网上也看到很多人再问这个错误怎么解决。我自己的解决方法如下:错误提示          错误 1 error C2440: “初始化”: 无

2011-06-04 17:19:00 2728

原创 VS2008下MFC使用DCMTK详解。

前面两篇文章介绍了DCMTK在Vs2008下如何编译。本文将介绍怎样在MFC工程中使用DCMTK。 获取DCMTK库     Install编译生成dcmtk-3.5.4-win32-i386文件夹,里面包含所有需要的库文件。打开文件夹,可以看到里面有/bin,/etc,/include,/lib,/share五个文件夹。      在你的MFC项目中,在和Debug同一层目录

2011-06-02 19:34:00 3393 4

原创 VS2008编译DCMTK3.5.4过程详解(2)

<br />上一篇我们生成了VS2008工程,本文将详细介绍编译过程及编译中遇到的问题的解决方法。    编译:<br />      打开生成的VS2008工程,也就是在文件夹D:/DCMTK/dcmtk-3.5.4(你的可能不在这)下。<br />      网上介绍了很多编译的方式,包括最常见的就是批生成,但是我感觉这个对解决问题不利,主要原因是你如果编译,会有上百个错误。而且你很难对错误进行定位。<br /> <br />      我的做法如下:<br /> <br />      64个工程,除

2011-06-02 17:04:00 1733 1

原创 VS2008编译DCMTK3.5.4过程详解(1)

<br />      VS2008下编译DCMTK网上资料较少,网上资料主要针对VC6或者VS2005亦或者VS2010进行编译,自己千辛万苦之后,终于在VS2008下将DCMTK编译通过。现和大家分享,希望对大家有所帮助。<br />      编译工具:VS2008。<br />      DCMTK版本:3.5.4。<br />      CMAKE版本:2.6.0。    软件下载:<br />      (1)在DCMTK官网(http://dicom.offis.de/dcmtk.php.en

2011-06-02 16:39:00 2736

原创 “error LNK2019: 无法解析的外部符号 _main,该符号在函数 ___tmainCRTStartup 中被引用”解决方法。

<br />         在VS2008中使用MFC,程序生成时遇到如下错误:error LNK2019: 无法解析的外部符号 _main,该符号在函数 <br /> <br />___tmainCRTStartup 中被引用,LIBCMTD.lib。<br /> <br />          打开BuildLog(在Debug目录下面),会看到如下:<br /> <br />         1>LINK : warning LNK4098: 默认库“msvcrtd.lib”与其他库的使用冲突;请使

2011-06-02 15:44:00 20343 1

How_to_Write_makefile

教你怎样独立编写makefile,主要在linux下使用,windows下,以.NET平台为例,这些工作都已经做好了。

2011-07-13

空空如也

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

TA关注的人

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