自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

我喜欢程序员,他们单纯、固执、容易体会到成就感;面对压力,能够挑灯夜战不眠不休;面对困难,能够迎难而上挑战自我。他们也会感到困惑与傍徨,但每个程序员的心中都有一个比尔盖茨或是乔布斯的梦想。

  • 博客(167)
  • 资源 (14)
  • 收藏
  • 关注

原创 如何阅读一本IT书籍

一个人读的书籍在某种程度上可能决定其事业高度和成就,因为不同的书籍给予人的思维和视角是不同的。不同的思维和视角会影响一个人的态度和性格。性格传播习惯,习惯催生行动,行动决定命运。虽然不完全正确,也是很有道理的。

2022-10-01 21:11:41 200 1

原创 剑指offer42:翻转单词顺序

剑指offer42:翻转单词顺序

2015-09-02 11:44:49 1115

原创 统计重复字符串的个数

题目:统计重复字符串的个数,并输出。示例输入:abcdef示例输出:a1b1c1d1e1f1示例输入:abbbbbbbbbbbcc示例输出:a1b11c2

2015-09-01 10:46:31 5987 3

原创 剑指offer26:复杂链表的复制

复杂链表的复制第三步,我自己写了一个函数,易于理解。把第二步得到的链表拆分成两个链表,奇数位置上的结点组成原始链表,偶数位置上的结点组成复制出来的链表。

2015-08-26 17:55:26 1064

原创 栈的压入、弹出序列

解题分析:如果下一个弹出的数字刚好是栈顶数字,那么直接弹出。如果下一个弹出的数字不在栈顶,我们把压栈序列中还没有入栈的数字压入辅助栈,直到把下一个需要弹出的数字压入栈顶为止。如果所有的数字都压入了栈了仍然没有找到下一个弹出的数字,那么该序列不可能是一个弹出序列

2015-08-25 17:58:33 887

原创 C++ 内存分布

C++内存分布参考链接http://www.cnblogs.com/skynet/archive/2011/03/07/1975479.html#作者 吴秦为什么需要知道C/C++的内存布局和在哪可以可以找到想要的数据?知道内存布局对调试程序非常有帮助,可以知道程序执行时,到底做了什么,有助于写出干净的代码。本文的主要内容如下:源文件转换为可执行文件可执行程序组

2015-08-15 11:10:58 1630

原创 求链表的倒数第K个结点

题目    输入一个单向链表,输出该链表中倒数第 k  个结点。链表的倒数第 0  个结点为链表的尾指针。思路    解法一:    可以先遍历一遍统计链表个数,然后找到倒数第k个的下标再遍历,这样时间复杂度比较高    解法二:   双指针联动:一个指针先跑K -1步,然后两个指针一起跑。当第一个指针跑到尾节点时,第二个指针恰好是倒数第K个节点。需

2015-08-14 13:29:52 874

原创 atoi函数的详细实现(考虑溢出)

atoi()函数的功能:将字符串转换成整型数。atoi()会扫描参数str字符串,跳过前面的空白字符,直到遇上数字或正负号才开始做转换,而再遇到非数字或字符串时('\0')才结束转化,并将结果返回(返回转换后的整型数)。写atoi函数的时候需要注意一下几点1. 忽略字符串前的空白字符2. 字符串所表示数值的正负号3. 结束条件,遇到非数字或者字符'\0'结束4. 考虑溢

2015-08-14 11:37:03 7650 3

原创 红黑树

红黑树是一种自平衡二叉查找树。它的统计性能要好于平衡二叉树(AVL树),因此,红黑树在很多地方都有应用。在C++ STL中,很多部分(目前包括set, multiset, map, multimap)应用了红黑树的变体(SGI STL中的红黑树有一些变化,这些修改提供了更好的性能,以及对set操作的支持)。它是复杂的,但它的操作有着良好的最坏情况运行时间,并且在实践中是高效的: 它可以在O(l

2015-08-11 10:47:09 771

原创 AVL树详解

平衡二叉树定义平衡二叉树简称平衡树,又称为AVL树。若一棵二叉树的任何节点的左右子树高度差最多相差1,此二叉树即是平衡二叉树。把二叉树的任何节点的左子树高度减去右子树高度定义为该节点的平衡因子。二叉平衡树的平衡因子只能是1、0或者-1。平衡二叉树是对二叉搜索树(又称为二叉排序树)的一种改进。二叉搜索树有一个缺点就是,树的结构是无法预料的,随意性很大,它只与节点的值和插入的顺序有关系,往往得

2015-08-10 11:48:26 1385

原创 二叉搜索树

二叉查找树定义二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均不小于它的根结点的值; 它的左、右子树也分别为二叉排序树。二叉排序树的查找过程和二叉树类似,通常采取二叉链表作为二叉排序树的存储结构。中序遍历二叉排序树可得到一个关键字的有序序列,一个无序序列可以通过构造一棵二叉排序树变成一个有序序列,构造树的过程即为对无

2015-08-08 16:34:33 891

原创 提供统一入口--外观模式

在软件开发中,有时候为了完成一项较为复杂的功能,一个类需要和多个其它类进行交互,而这些需要交互的其它类通常作为一个完整的整体出现,由于涉及的类比较多,导致使用时代码较为复杂,此时,特别需要一个类似服务员一样的角色,由它复杂和多个业务类交互,使用这些业务类的类只需要和该类交互即可。外观模式,通过引入一个新的外观类来实现该功能,外观类充当了软件系统的“服务员”,它为多个业务类的调用提供了统一的入口,简

2015-07-16 20:18:48 1512

原创 对象间的联动--观察者模式

随着交通信号灯的变化,汽车的行为也将随之变化,一盏交通信号灯可以指挥多辆汽车。在软件系统中,有些对象之间也存在类似交通信号灯和汽车之间的关系,一个对象状态或者行为的变化将导致其他对象的状态或者行为也发生变化,它们之间将产生联动。为了更好的描述对象之间存在的这种一对多(包括一对一)的联动,观察者模式应运而生,它定义对象之间一对多的依赖关系,让一个对象的改变能够影响其它对象。观察者模式概述

2015-07-15 15:05:01 1052 1

原创 扩展系统功能--装饰模式

对已有对象的功能进行扩展(装饰),以获得更加符合用户需求的对象,使得对象具有更加强大的功能,这就是装饰模式。基于继承的复用缺点:(1) 系统扩展麻烦,在某些编程语言中无法实现(多继承问题)。(2) 代码重复,不利于对系统进行修改和维护。(3) 系统庞大,类的数目非常多。装饰模式概述根据合成复用原则,在实现功能复用时,多用关联(组合),少用继承。装饰类作用

2015-07-14 20:18:07 1042

原创 产品蔟的创建--抽象工厂模式

工厂方法模式通过引入工厂等级结构,解决了简单工厂模式中工厂类职责过重的问题,但由于工厂方法模式中每个工厂只生产一类产品,可能会导致系统中存在大量的工厂类,势必会增加系统的开销。此时,可以考虑将一些相关的产品组成一个“产品蔟”,由同一个工厂统一生产,这就是抽象工厂模式的基本思想。产品等级结构和产品蔟有时候希望一个工厂可以提供多个产品对象,而不是单一的产品对象。例如一个电器工厂,它

2015-07-13 22:00:16 1116

原创 多态工厂的实现--工厂方法模式

工厂方法模式概述在工厂方法模式中,不再提供一个统一的工厂类来创建所有的产品对象,而是针对不同的产品提供不同的工厂,系统提供一个与产品等级结构对应的工厂等级结构。工厂方法模式提供一个抽象工厂接口来声明抽象工厂方法,而尤其子类来具体实现工厂方法,创建具体的产品对象。工厂方法模式结构工厂模式结构图中包含以下4个角色。(1) 抽象产品:它是定义产品的接口

2015-07-13 19:17:16 1510

原创 集中式工厂的实现--简单工厂模式

简单工厂模式概述首先讲需要创建的各种不同对象的相关代码封装到不同的类中,这些类称为具体产品类,而将它们公共的代码进行抽象和提取后封装在一个抽象产品类中,每一个具体产品类是抽象产品类的子类;然后提供一个工厂类用于创建各种产品,在工厂类中提供一个创建产品的工厂方法,该方法可以很据所传入的参数不同创建不同的具体产品对象;客户端只需要调用工厂类的工厂方法并传入相应的参数即可以得到一个产品对象。简单

2015-07-13 16:03:41 812

原创 统计一个文件英文单词的个数

/* 统计一个文件内,英文单词的个数,并按 word = count的格式顺序输出 统计输出总的英文单词个数*/#include #include #include #include #include using namespace std;int main(){ string line; //打开输入文件 ifstream input("transform.txt"

2015-07-08 14:53:51 4295

原创 一元多项式化简

背景:编程实现如下功能:对输入的一元多项式,进行同类项合并,并按指数降序排序,输出处理后的一元多项式。 说明: l 多项式由若干个单项式组成,单项式之间为加、减(+,-)关系。l 单项式指数字与字母幂的乘积构成的代数式。对一元多项式,字母只有一种。l 同类项合并指将多项式中指数相同的单项式,系数经过加减求和,合并为一个单项式。按指数降序指多项式中,单项式按指数从大到小顺序相

2015-07-07 19:22:48 4507

原创 给定一个二叉树,获取该二叉树的宽度深度

给定一个二叉树,获取该二叉树的宽度深度。

2015-07-06 16:23:00 2137

原创 二维数组的列排序

给出一个二维数组,请将这个二维数组按第i列(i从1开始)排序,如果第i列相同,则对相同的行按第i+1列的元素排序,如果第i+1列的元素也相同,则继续比较第i+2列,以此类推,直到最后一列。如果第i列到最后一列都相同,则按原序排列。

2015-07-05 22:00:11 4487

原创 八皇后问题(C语言版本)

八皇后问题是一个古老而著名的问题,是回溯算法的典型例题。该问题是十九世纪著名的数学家高斯1850年提出:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。

2015-07-05 15:10:31 40190 15

原创 对容器元素重新排序的算法

假设我们要分析一组儿童故事中使用的单词,例如想知道他们使用了多少个6个或者以上字母组成的单词。每个单词只统计一次,不考虑它出现的次数。程序代码如下:#include #include #include #include using namespace std;//comparison function to be userd to sort by word lengthbool

2015-07-04 19:40:43 1134

原创 c++ 单词转换 map对象

#include #include #include #include #include #include using namespace std;ifstream& openfile(ifstream &in,const string &filename){ in.close();//close in case it was alrady open in.clear();//

2015-07-02 17:01:34 1111

原创 c++ 输出虚函数表内容

class Base{ public: virtual void f(){cout<<"Base::f"<<endl;} virtual void g(){cout<<"Base::g"<<endl;} virtual void h(){cout<<"Base::h"<<endl;}};typedef void (*Fun)(void);int main(){ Base b

2015-06-25 22:15:44 1562

原创 delete与delete [] 真正区别

对于像int/char/long/int*/struct等等简单数据类型,由于对象没有destructor,所以用delete 和delete [] 是一样的!但是如果是C++对象数组就不同了!

2015-06-25 21:28:39 1441

原创 atoi和itoa函数

#include #include #include int Myatoi(const char* str){ if(str==NULL)//判断指针是否为空 { printf("Pointer is NULL\0"); return 0; } while(*str==' ')//忽略前导空字符 str++; int sign=1;//判断符号 if(*str=='

2015-06-22 15:16:29 1072

原创 Contains Duplicate II

Given an array of integers and an integer k, find out whether there there are two distinct indices i and j in the array such that nums[i] = nums[j] and the difference between i and j is at most k.

2015-06-18 21:57:20 862

原创 C++指针数组、数组指针、数组名及二维数组技巧汇总

这篇文章主要介绍了C++指针数组、数组指针、数组名及二维数组技巧汇总,对于深入理解C++数组与指针来说非常重要,需要的朋友可以参考下。本文较为详细的分析了关于理解C++指针数组,数组指针,数组名,二维数组的一些技巧。是比较重要的概念,相信对于大家的C++程序设计有一定的帮助作用。

2015-06-18 16:20:46 1048

原创 位运算实现乘法运算

在回答本问题之前,先学习一些有关位运算的知识。(1) 常用的等式: -n=~(n-1)=~n+1(2) 获取整数n的二进制中最后一个1: n&~(n-1)或者n&(-n)。例如n=010100,则-n=101100,n&(-n)=000100。(3) 去掉整数n的二进制中最后一个1: n&(n-1)。例如n=010100,n-1=010011,则n&(n-1)=010000。注:对

2015-06-18 12:18:14 14211

原创 如何使用宏求结构体的内存偏移地址

在C语言中,ANSI C标准允许值为0的常量被强制转换成任何一种类型的指针,而且转换结果是一个空指针,即NULL指针,因此对0取指针的操作((type*)0)的结果就是一个类型为type*的NULL指针。 但是如果利用这个NULL指针来访问type类型的成员当然是非法的。 因为&(((type*)0)->field)的意图只不过是计算field字段的地址,C语言编译器根本不生成访问type成员的代码,而仅仅是根据type的内容布局和结构体实例地址在编译期计算这个常量地址,这样就完全避免了通过NULL指针访

2015-06-16 15:54:17 2433

原创 Majority Element

Given an array of size n, find the majority element. The majority element is the element that appears more than ⌊ n/2 ⌋ times.You may assume that the array is non-empty and the majority element al

2015-06-09 23:14:44 641

原创 高效合并两个有序数组(Merge Sorted Array)

问题:两个有序数组,合并成一个有序数组,假设第一个数组空间足够容纳两个数组。分析:考虑到num1数组很大,可以直接在num1数组上进行合并,但是要讲究效率。如果单纯从前往后合并,那么效率会非常低,因为a数组后面的数字需要不停的移动。换一种思路,我们采用从后往前合并,首先计算出总长度,设置一个指针从num1数组最后往前移动。

2015-06-03 23:35:12 2575

原创 Pascal's Triangle II

Given an index k, return the kth row of the Pascal's triangle.For example, given k = 3,Return [1,3,3,1].

2015-06-02 22:49:57 640

原创 高内聚低耦合

高内聚,低耦合的系统有什么好处呢?事实上,短期来看,并没有很明显的好处,甚至短期内会影响系统的开发进度,因为高内聚,低耦合的系统对开发设计人员提出了更高的要求。高内聚,低耦合的好处体现在系统持续发展的过程中,高内聚,低耦合的系统具有更好的重用性,维护性,扩展性,可以更高效的完成系统的维护开发,持续的支持业务的发展,而不会成为业务发展的障碍。

2015-05-29 17:11:09 896

原创 C/C++ union用法

在C/C++程序的编写中,当多个基本数据类型或复合数据结构要占用同一片内存时,我们要使用联合体;当多种类型,多个对象,多个事物只取其一时(我们姑且通俗地称其为“n 选1”),我们也可以使用联合体来发挥其长处

2015-05-04 16:52:45 898

原创 用HDFS存储海量的视频数据

package org.apache.sxh.hadoop.fs;import java.io.File;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.FSDataInputStream;import org.apache.hadoop.fs.FSDataOutputStream;impo

2015-05-04 15:17:14 10592 1

原创 GDB调试程序三(详述)

当程序被停住了,你需要做的第一件事就是查看程序是在哪里停住的。当你的程序调用了一个函数,函数的地址,函数参数,函数内的局部变量都会被压入“栈”(Stack)中。你可以用GDB命令来查看当前的栈中的信息。下面是一些查看函数调用栈信息的GDB命令: backtrace bt 打印当前的函数调用栈的所有信息。如: (gdb) bt #0 func (n=250) at tst.c:6 #1 0x080485

2015-04-25 16:39:19 1146

原创 GDB调试程序二(详述)

声明:博客内容引用的是陈先生的博文,原文链接http://blog.csdn.net/haoel/article/details/2879。由于原博文没有目录,不方便查询,所以特此把原博文整理成带目录版的。一、设置断点(BreakPoint)        我们用break命令来设置断点。正面有几点设置断点的方法:        break          在进入指定

2015-04-25 16:06:33 924

原创 Linux多线程编程小结

Linux进程创建一个新线程时,线程将拥有自己的栈(因为线程有自己的局部变量),但与它的创建者共享全局变量、文件描述符、信号句柄和当前目录状态。Linux通过fork创建子进程与创建线程之间是有区别的:fork创建出该进程的一份拷贝,这个新进程拥有自己的变量和自己的PID,它的时间调度是独立的,它的执行几乎完全独立于父进程。进程可以看成一个资源的基本单位,而线程是程序调度的基本单位,一个进程内部的线程之间共享进程获得的时间片。

2015-04-25 12:13:34 814

Editplus破解版

破解版Editplus 自带key 亲测64位可用 很不错的资源 希望对大家有用

2014-10-04

windows 64位 putty

windows 64位 putty ssh 亲测可用

2014-09-13

Hadoop权威指南(第2版).pdf 高清中文版

《hadoop权威指南(第2版)》从hadoop的缘起开始,由浅入深,结合理论和实践,全方位地介绍hadoop这一高性能处理海量数据集的理想工具。全书共16章,3个附录,涉及的主题包括:haddoop简介;mapreduce简介;hadoop分布式文件系统;hadoop的i/o、 mapreduce应用程序开发;mapreduce的工作机制;mapreduce的类型和格式;mapreduce的特性;如何构建hadoop集群,如何管理hadoop;pig简介;hbase简介;hive简介;zookeeper简介;开源工具sqoop,最后还提供了丰富的案例分析。

2014-05-09

数据挖掘导论 清晰版

《数据挖掘导论(完整版)》 陈封能(Pang-Ning Tan) , 斯坦巴赫(Michael Steinbach) , 库玛尔(Vipin Kumar) ;觉得比韩家炜的《数据挖掘——概念与技术》更贴近实用 很清晰

2014-05-06

C++编程思想(第二版)练习题答案

C++编程思想第二版 课后练习题答案 绝对正宗 希望对大家有帮助

2013-12-02

Head First 设计模式电子版和源程序代码

Head First设计模式的的电子版和随书源程序代码,绝地正宗,可用,希望对大家有帮助。

2013-12-02

酒店管理系统论文和程序

这是我酒店管理系统毕设的全套资料(有点不舍得啊),包含论文,程序,开题报告,任务书,中期检查表,审题表,外文翻译资料等。希望对你有帮助。

2013-11-04

QT学习资料大全

这是我从西安电子科技大学内网下载来的,很实用的QT学习资料,希望对你有帮助。

2013-11-04

西电计算机复试资料大全

这是我复试期间的资料,还是比较有用的,13年复试的时候微机和编译都有很多原题。

2013-04-21

词法分析和语法分析程序

编译原理实验的词法分析和语法分析程序,内含详细的实验报告,希望大家顺利通过实验!

2012-06-10

空空如也

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

TA关注的人

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