自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 收藏
  • 关注

转载 最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串

一、最大子序列和这里把最大子序列和放在第一个位置,它并不是字符串相关的问题,事实上它的目的是要找出由数组成的一维数组中和最大的连续子序列。比如[0,-2,3,5,-1,2]应返回9,[-9,-2,-3,-5,-3]应返回-2。1、动态规划法你也许从这两个例子中已经可以看出,使用动态规划的方法很容易完成这个任务,只要前i项的和还没有小于0那么子序列就一直向后扩展,

2014-10-30 10:33:16 1128

转载 导致内存泄漏的原因

内存泄漏是指堆内存的泄漏。堆内存是指程序从堆中分配的,大小任意的(内存块的大小可以在程序运行期决定),使用完后必须显示释放的内存。应用程序一般使用malloc,realloc,new等函数从堆中分配到一块内存,使用完后,程序必须负责相应的调用free或delete释放该内存块,否则,这块内存就不能被再次使用,我们就说这块内存泄漏了内存泄漏可以分为4类:   1. 常发性

2014-10-28 16:11:34 1677

转载 求职经验

经过了8月-10月的血雨腥风,找工作终于告一段落,自己也基本上定在华为、南瑞继保、360这三家之一了。下面,我就如何去找工作,如何准备,做一个分享。什么最重要?基础!基础!看书!看书!建议看书主要从C/C++,Linux操作系统,网络与数据库,应试算法这几个方向入手,循序渐进。一、时间表如果你是研二,从现在开始准备,建议你做好计划,我建议的时间表如下,请针对自己情况

2014-10-28 16:01:50 473

原创 IP地址的存储形式

#include using namespace std;int main() { unsigned int ip = 0x1f4e2342; unsigned char* result = (unsigned char*)(&ip); printf("%d.%d.%d.%d",result[3], result[2], result[1],result[0]);}

2014-10-27 20:01:30 735

原创 SQL server 2005 安装教程

http://www.cnblogs.com/icewee/articles/2019783.html

2014-10-27 19:04:56 649

转载 C/C++中各种类型int、long、double、char表示范围(最大最小值)

#include#include#include using namespace std;int main(){ cout << "type: \t\t" << "************size**************"<< endl; cout << "bool: \t\t" << "所占字节数:" << sizeof(bool); cout ::max

2014-10-27 16:18:58 814

转载 Reservoir Sampling 蓄水池抽样 海量数据不知道总数只能遍历一次随机抽样问题

问题:如何随机从n个对象中选择一个对象,这n个对象是按序排列的,但是在此之前你是不知道n的值的。        思路:如果我们知道n的值,那么问题就可以简单的用一个大随机数rand()%n得到一个确切的随机位置,那么该位置的对象就是所求的对象,选中的概率是1/n。        但现在我们并不知道n的值,这个问题便抽象为蓄水池抽样问题,即从一个包含n个对象的列表S中随机选取k个对象

2014-10-27 16:08:19 718

转载 C random C ++rand函数应用

random函数不是ANSI C标准,不能在gcc,vc等编译器下编译通过。但在C语言中int random(num)可以这样使用,它返回的是0至num-1的一个随机数。 可改用C++下的rand函数来实现。rand()%n   范围  0~n-1rand()主要是实现 产生随机数,其他我们在这里可以无视他显然任意 一个数  rand()%n  范围显然是  0~n

2014-10-27 14:19:45 1005

转载 几种进程间的通信方式

# 管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。# 有名管道 (named pipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。# 信号量( semophore ) : 信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共

2014-10-26 20:34:41 490

原创 牛顿迭代求平方根

code:#include #include #include using namespace std;const double eps = 0.00000001;double my_sqrt_1(double x) { float start = 0; float last = x; while(start < last) { float

2014-10-26 16:57:13 1143

转载 各种排序算法的时间复杂度

选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法,冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。冒泡法:  这是最原始,也是众所周知的最慢的算法了。他的名字的由来因为它的工作看来象是冒泡:  复杂度为O(n*n)。当数据为正序,将不会有交换。复杂度为O(0)。直接插入排序:O(n*n)选择排序:O(n*n)快速排序:平均时间复

2014-10-22 14:25:57 3652

转载 Python版图的深度/广度搜索

#_*_coding:utf_8_import sysclass Graph(): def __init__(self): visited = [] edges = [[]] queue = [] V = 0 E = 0 def initGraph(self):

2014-10-18 10:45:57 617

转载 python中的map、filter、reduce函数

三个函数比较类似,都是应用于序列的内置函数。常见的序列包括list、tuple、str。1.map函数map函数会根据提供的函数对指定序列做映射。map函数的定义:map(function, sequence[, sequence, ...]) -> list通过定义可以看到,这个函数的第一个参数是一个函数,剩下的参数是一个或多个序列,返回值是一

2014-10-18 10:38:27 502

原创 C++ 字符串排序

#include #include #include #include using namespace std;bool less_lower(const char& it1, const char& it2) { return (it1) < (it2);}int main() { char str[] = "sadfsdfsfasdfsdfwefwef";

2014-10-16 09:41:45 2648

转载 【C++】typedef与define的思考

typedef    一,定义           typedef:声明自定义数据类型,配合各种原有数据类型,用来简化编程。    二,用途            1,便于移植                  typedef  int  INT32;                  INT32     a;//定义整型变量        

2014-10-14 13:55:17 777

原创 C++ 字符串库函数整理

#include #include #include #include using namespace std;void PrintStr(const char* str) { cout<<str<<endl;}//将字符串翻转void PrintRevStr(char* str) { cout<<strrev(str)<<endl;}int main()

2014-10-13 11:38:02 1051

转载 深入分析C++中char * 和char []的区别

问题引入:在实习过程中发现了一个以前一直默认的错误,同样char *c = "abc"和char c[]="abc",前者改变其内容程序是会崩溃的,而后者完全正确。程序演示:测试环境Devc++代码运行结果2293628 4199056 abc2293624 2293624 abc2293620 4199056 abc#include using

2014-10-13 11:35:55 498

转载 大数加法的字符串实现

#include#include #include using namespace std;char s1[200],s2[200],sum[210];void add(){ int lena=strlen(s1); int lenb=strlen(s2); int maxlen=(lena<lenb)?lenb:lena; int carry=0

2014-10-13 10:01:32 848

转载 回文字符串整理

定义两个指针,从两头开始同时向中间扫描字串:

2014-10-12 15:36:24 560

转载 poj--1703 二分图判断

Sample Input15 5A 1 2D 1 2A 1 2D 2 4A 1 4Sample OutputNot sure yet.In different gangs.In the same gang.此题的意思就是要吧嫌疑犯分成两个团伙。其实这道题就是求给的一个图是不是二分图。。。。

2014-10-11 11:41:09 751

转载 C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法

1、cin 2、cin.get() 3、cin.getline() 4、getline() 5、gets() 6、getchar()附:cin.ignore();cin.get()//跳过一个字符,例如不想要的回车,空格等字符1、cin>>         用法1:最基本,也是最常用的用法,输入一个数字:#include  using n

2014-10-11 10:49:43 511

原创 HDU1548 A strange lift 广搜 + 最短路

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1548

2014-10-11 09:56:47 587

转载 HDU3448 Bag Problem 01思想+深搜

题目链接:点击打开链接

2014-10-10 20:45:55 497

转载 poj3984迷宫问题 广搜+最短路径

定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0,};它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。Input一

2014-10-10 11:15:50 1313

转载 最小生成树Prim算法

一个连通图的生成树是一个极小的连通子图,它含有图中全部的顶点,但只有足以构成一棵树的n-1条边。所谓的最小成本,就是n个顶点,用n-1条边把一个连通图连接起来,并且使得权值的和最小。综合以上两个概念,我们可以得出:构造连通网的最小代价生成树,即最小生成树

2014-10-09 00:33:47 623

转载 图的dfs与bfs(深搜广搜)c++实现

#include #include #include #include #include using namespace std;int n;vector > graph;bool visited[100] = {0};void dfs(int v){ list::iterator it; visited[v] = true; printf("%5d",

2014-10-08 23:45:45 3133

转载 时钟重合问题

题意:24小时中,时、分和秒针重合次数是多少?分别是na

2014-10-08 17:28:34 1004

原创 喝汽水

题意:1元钱可以喝一瓶汽水,2个空瓶可以换一瓶汽水,问n元可以喝多少瓶汽水?code:#include using namespace std;int main() { int n; cin>>n; int sum = n; while(1) { if(n == 1) { sum += 1;

2014-10-08 17:23:04 495

转载 C++ 堆排序

1 堆   1.1 简介n个关键字序列Kl,K2,…,Kn称为(Heap),当且仅当该序列满足如下性质(简称为堆性质):(1)ki=号。//k(i)相当于二叉树的非叶结点,K(2i)则是左孩子,k(2i+1)是右孩子若将此序列所存储的向量R[1..n]看做是一棵完全二叉树的存储结构,则堆实质上是满足如下性质的完全二叉树:树中任一非叶结点的关键字均不大于(或不小于

2014-10-07 12:52:44 501

原创 蛇形矩阵

题意:给出N,要求按如下形式打印出N*N的矩阵:1     2    3   412  13 14  511  16 15  610   9    8   7code:

2014-10-06 17:26:50 531

转载 二叉树 前序,中序,后序遍历 --非递归遍历

前序遍历:#include #include using namespace std;struct TreeNode { int value; TreeNode* left; TreeNode* right;};TreeNode* createNode(int value) { TreeNode* node = new TreeNode;

2014-10-06 10:03:33 524

原创 二叉树的前序,中序,后序遍历 递归实现

前序遍历:#include using namespace std;struct TreeNode { int value; TreeNode* left; TreeNode* right;};TreeNode* createNode(int value) { TreeNode* node = new TreeNode; node -> va

2014-10-06 09:47:28 605

原创 C++ 二分查找

#include using namespace std;int BinarySearch(int a[], int length, int value) { if(a == NULL || length <= 0) return -1; int st = 0; int end = length - 1; while(st <= end) { int mid =

2014-10-05 21:28:11 533

原创 C++ sort与qsort的比较

qsort:快速排序sort:快速排序的优化版而且

2014-10-04 17:14:31 672

转载 并查集-判断无向图是否存在环

并查集是一种树型的数据结构,用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。常常在使用中以森林来表示。集就是让每个元素构成一个单元素的集合,也就是按一定顺序将属于同一组的元素所在的集合合并。Find:确定元素属于哪一个子集。它可以被用来确定两个元素是否属于同一子集合。Union:将两个子集合并成同一个集合。代码:

2014-10-04 14:37:14 1293

转载 插入排序

//从前向后查找的插入排序

2014-10-04 10:16:11 481

原创 二叉树中和为某一值的路径

#include using namespace std;struct TreeNode { int value; TreeNode* left; TreeNode* right;};TreeNode* createNode(int value) { TreeNode* node = new TreeNode; node -> value = v

2014-10-03 21:52:26 529

原创 不用‘+’实现加法运算

#include using namespace std;int AddWithoutOperator(int num_1, int num_2) { if(num_2 == 0) { return num_1; } int sum = num_1 ^ num_2; int carry = (num_1 & num_2) << 1; r

2014-10-03 18:28:33 473

原创 C++ 快速排序

void swap(int& a, int& b) {// a = a ^ b; //这个为什么不行?如果是这样:swap(a[0],a[0])的话,a和b都为a[0],两个直接都等于0// b = a ^ b;// a = a ^ b; int temp = a; a = b; b = temp;}一、动态判

2014-10-02 17:05:36 603

转载 归并排序

归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比较,如果有数列为空,那直接将另一个数列的数据依次取出即可。[cpp] view plaincopy

2014-10-01 23:57:12 479

空空如也

空空如也

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

TA关注的人

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