2014年8月28日

IT公司100题-27-跳台阶问题

摘要: 问题描述:一个台阶总共有n阶,一次可以跳1级或者2级。求总共有多少种跳法。分析:用f(n)表示n阶台阶总共有多少种跳法。n阶台阶,第一可以选择跳1阶或者2阶,则f(n) = f(n-1) + f(n-2)。问题转化为斐波那契数列问题。/ 1 n=1f(n)= 2n=2\f(n-1)+(f-2)n>2 阅读全文

posted @ 2014-08-28 21:52 醉清风JM 阅读(214) 评论(0) 推荐(0)

IT公司100题-tencent-打印所有高度为2的路径

摘要: 问题描述:打印所有到叶子节点长度为2的路径 10 / \ 6 16 /\ / \ 4 8 14 18 / \ / \ \2 5 12 15 20 / 11打印:[10 6 8][6 4 2][6 4 5][16 14 15][16 18 20][14 12 11]分析:1, ... 阅读全文

posted @ 2014-08-28 21:49 醉清风JM 阅读(207) 评论(0) 推荐(0)

2014年8月23日

测试 - 如何测试一部电梯

摘要: 转自:http://blog.csdn.net/txx9010/article/details/8659051需求测试:查看电梯使用说明书、安全说明书等界面测试:查看电梯外观功能测试:1.测试电梯能否实现正常的上升和下降功能。2.电梯的按钮是否都可以使用。3.电梯门的打开,关闭是否正常。4.报警装置... 阅读全文

posted @ 2014-08-23 09:25 醉清风JM 阅读(1307) 评论(0) 推荐(0)

2014年8月22日

Objective-C 与 C++ 的异同

摘要: stackflow 上有同学提问"C++ 与 Objective-C 有什么异同?"楼下的提供的两个资料挺不错的. 其一是: Pierre Chatelier 写的 <From C++ to Objective-C version 2.1 en> 下载链接:http://pierre.chachat 阅读全文

posted @ 2014-08-22 09:47 醉清风JM 阅读(467) 评论(0) 推荐(0)

2014年8月21日

IT公司100题-26-左旋转字符串

摘要: 问题描述:给定字符串和左旋的字符数,写程序实现字符串的左旋操作。例如对于字符串”12345678″, 左旋转4个字符后,变成”56781234″。要求时间复杂度为O(n),空间复杂度O(1)。分析:假设字符串表示为XY,X表示需要左旋的部分,左旋后字符串表示为YX。根据公式:代码实现: 1 // 2... 阅读全文

posted @ 2014-08-21 16:46 醉清风JM 阅读(205) 评论(0) 推荐(0)

IT公司100题-25-求字符串中的最长数字串

摘要: 问题描述:实现一个函数,求出字符串中的连续最长数字串。例如输入”12345cbf3456″,输出”12345″。函数原型为:voidconti_num_max(constchar*src,char*dest);dest保存最长数字串,返回void。分析:遍历一遍字符串,记录起始位置和长度即可。代码实... 阅读全文

posted @ 2014-08-21 16:35 醉清风JM 阅读(195) 评论(0) 推荐(0)

2014年8月18日

C-字符串常量

摘要: 相同的字符串常量是共享的,而且是不可写的。 1 #include 2 using namespace std; 3 4 char *string1, *string2; 5 6 int main() { 7 string1 = "abcd"; string2 = "abcd"; 8 ... 阅读全文

posted @ 2014-08-18 21:15 醉清风JM 阅读(168) 评论(0) 推荐(0)

C-union的使用

摘要: union有两个作用:1,节约空间,如果一个struct存在两个互斥的变量,则可以把这个struct变成union2,将同一个内存作为多种解释代码: 1 #include 2 using namespace std; 3 4 //作用1,如果只是存a,20000000 个s_tag节约20M空间... 阅读全文

posted @ 2014-08-18 21:01 醉清风JM 阅读(242) 评论(0) 推荐(0)

IT公司100题-21-输入n和m,和等于m

摘要: 问题描述:输入两个整数n 和m,从数列1,2,3,…,n 中随意取几个数,使其和等于m,将所有可能的组合都打印出来。分析:利用递归的思路,对于1,2,3,…,n 中的任意一个数,要么选,要么不选。递归下去,直到其和等于m时,输出。解答: 1 // 21.cc 2 #include 3 #inclu... 阅读全文

posted @ 2014-08-18 16:46 醉清风JM 阅读(220) 评论(0) 推荐(0)

STL-算法

摘要: #include 1. max_element(v.begin(), v.end()); 注意,所有的区间全部是半开区间,如果数组包含20~40,通过find找出25,和35的positon,但是max_element(pos25, pos35)得到的是34.2. min_element(v.be... 阅读全文

posted @ 2014-08-18 13:17 醉清风JM 阅读(204) 评论(0) 推荐(0)

2014年8月16日

C- printf的使用

摘要: ASC C之后引入的一个特性是,相邻的字符可以被自动连接 1 /* printf.cc 2 * 2014/09/02 update 3 */ 4 #include 5 using namespace std; 6 7 int main() { 8 printf("abcd" 9 ... 阅读全文

posted @ 2014-08-16 09:18 醉清风JM 阅读(266) 评论(0) 推荐(0)

2014年8月11日

Linux - gcc和g++的区别

摘要: 一般linux系统都自带了gcc编译器的,你可以用你的安装光盘去安装,如果你是觉得自带的gcc版本太低了,可以去gcc的官方网站可以下载到,编译需要很长的时间,如果你只编译C或者C++可以只下载gcc-g++和gcc-core,这样编译的可能要快一些,晚上睡觉前,你可以编译,早上就可以编译好了,我一... 阅读全文

posted @ 2014-08-11 22:49 醉清风JM 阅读(661) 评论(0) 推荐(0)

IT公司100题-19-求Fibonacci数列

摘要: 问题描述:定义Fibonacci数列的定义如下:/ 0 n=0f(n)=1 n=1\ f(n-1)+f(n-2)n=2给定n,求Fibonacci数列的第n项。分析:1 递归法 1 // 19_1.cc 2 #include 3 using namespace std; 4 5 size_t f... 阅读全文

posted @ 2014-08-11 15:57 醉清风JM 阅读(229) 评论(0) 推荐(0)

IT公司100题-18-圆圈中最后剩下的数字

摘要: 问题描述:n个数字(下标为0, 1, …, n-1)形成一个圆圈,从数字0开始,每次从这个圆圈中删除第m个数字(当前数字从1开始计数)。当一个数字被删除后,从被删除数字的下一个数字开始计数,继续删除第m个数字。求这个圆圈中剩下的最后一个数字。分析:这是有名的约瑟夫环问题。最直接的方法:使用链表来模拟... 阅读全文

posted @ 2014-08-11 15:19 醉清风JM 阅读(217) 评论(0) 推荐(0)

IT公司100题-17-第一个只出现一次的字符

摘要: 问题描述:在一个字符串中找到第一个只出现一次的字符。例如输入asdertrtdsaf,输出e。分析:最简单的方法是直接遍历,时间复杂度为O(n^2)。进一步思考:字符串中的字符,只有256种可能性,使用字符的为下标,扫描一遍,存储各个字符在字符串中的出现。第二次扫描字符串,查看每个字符在字符串中的出... 阅读全文

posted @ 2014-08-11 13:51 醉清风JM 阅读(144) 评论(0) 推荐(0)

IT公司100题-16-层遍历二元树

摘要: 问题描述:层遍历二叉树,同一层从左往右打印。定义二元查找树的结点为:typedef struct BSTreeNode { int data; BSTreeNode *left; BSTreeNode *right;} Node;例如输入二叉树:6/ \4 12/ \ / \25... 阅读全文

posted @ 2014-08-11 12:50 醉清风JM 阅读(154) 评论(0) 推荐(0)

2014年8月10日

IT公司100题-15-求二元查找树的镜像

摘要: 问题描述:输入一颗二元查找树,将该树转换为它的镜像树,即对每一个节点,互换左右子树。例如输入: 6/ \4 12/ \ / \25 816输出: 6/ \12 4/ \ / \16852定义二元查找树的结点为:typedef struct BSTree { int dat... 阅读全文

posted @ 2014-08-10 21:44 醉清风JM 阅读(215) 评论(0) 推荐(0)

IT公司100题-14-排序数组中和为给定值的两个数字

摘要: 问题描述:输入一个升序排序的数组,给定一个目标值target,求数组的两个数a和b,a+b=target。如果有多个组合满足这个条件,输出任意一对即可。例如,输入升序数组【1, 3, 4, 5, 13, 17】和目标值20。输出3和17。分析:最简单的办法,直接遍历,时间复杂度为O(n^2)。双下标... 阅读全文

posted @ 2014-08-10 19:51 醉清风JM 阅读(207) 评论(0) 推荐(0)

2014年8月9日

IT公司100题-13-求链表中倒数第k个结点

摘要: 问题描述:输入一个单向链表,输出该链表中倒数第k个结点。链表倒数第0个节点为NULL。struct list_node { int data; list_node* next;};分析:方法1:首先计算出链表中节点的个数n,然后倒数第k个节点,为正数n-k+1个节点。需要遍历链表2次。方... 阅读全文

posted @ 2014-08-09 20:54 醉清风JM 阅读(215) 评论(0) 推荐(0)

IT公司100题-12-求1+2+…+n

摘要: 问题描述:求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)。分析:利用类的静态变量实现:new一含有n个这种类的数组,那么该类的构造函数将会被调用n次。代码实现: 1 // 12.cc 2 #include 3 ... 阅读全文

posted @ 2014-08-09 20:42 醉清风JM 阅读(183) 评论(0) 推荐(0)

2014年8月8日

IT公司100题-11-求二叉树中节点的最大距离

摘要: 问题描述:写程序,求一棵二叉树中相距最远的两个节点之间的距离。10/ \6 14/ \ / \4 8 12 16分析:二叉树中最远的两个节点,要么是根和一个叶子节点,要么是两个叶子节点。代码实现: 1 // 11.cc 2 #include 3 using namespace std... 阅读全文

posted @ 2014-08-08 19:36 醉清风JM 阅读(211) 评论(0) 推荐(0)

IT公司100题-10-翻转句子中单词的顺序

摘要: 问题描述:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。例如输入“Hello world!”,则输出“world! Hello”。分析:先翻转各个单词,然后整体翻转即可。参考代码: 1 // 10.cc 2 #incl... 阅读全文

posted @ 2014-08-08 14:03 醉清风JM 阅读(208) 评论(0) 推荐(0)

IT公司100题-9-判断整数序列是不是二元查找树的后序遍历结果

摘要: 问题描述:输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果。如果是返回true,否则返回false。例如输入4, 8, 6, 12, 16, 14, 10,由于这一整数序列是如下树的后序遍历结果:10/ \614/\/ \4 8 12 16因此返回true。如果输入6, 5, 8,... 阅读全文

posted @ 2014-08-08 09:26 醉清风JM 阅读(169) 评论(0) 推荐(0)

2014年8月7日

程序员的学习和积累

摘要: 对于一个程序员来说,学习的重要性相信大家都能意识得到。如何才能有效地学习,高效地学习?探讨下这个问题,我认为很有必要。 每个人学习的方法和习惯可能都不尽相同,很多人习惯了在学校的学习方式,特别是很多刚出校门的人。在他们潜意识中,学习只是应付考试的一种手段,考完就一切OK了,全部还给老师了也无所谓,... 阅读全文

posted @ 2014-08-07 19:52 醉清风JM 阅读(171) 评论(0) 推荐(0)

【STL】-迭代器的用法

摘要: 初始化:list::iterator pos;算法:1. 遍历 for(pos = col1.begin(); pos != col1.end(); ++pos){...}代码: 1 #include 2 #include 3 #include 4 #include 5 #include ... 阅读全文

posted @ 2014-08-07 13:23 醉清风JM 阅读(216) 评论(0) 推荐(0)

【STL】-list的用法

摘要: 初始化:#include list clist;算法:clist.push_back(c);clist.remove('d');代码: 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 7 int ma... 阅读全文

posted @ 2014-08-07 13:16 醉清风JM 阅读(194) 评论(0) 推荐(0)

【STL】-deque的用法

摘要: 初始化:#include deque fdeque;算法:fdeque.push_front(f);fdeque.push_back(f);fdeque.size()代码: 1 #include 2 #include 3 using namespace std; 4 int main() 5 {... 阅读全文

posted @ 2014-08-07 12:57 醉清风JM 阅读(236) 评论(0) 推荐(0)

2014年8月6日

【STL】- vector的用法

摘要: 初始化:1. 默认构造:vector vint;2. 用包含10个元素的数组初始化:vector vint(ia, ia+10);算法:1. vint.push_back(i);2. vint.size();3. vint[i];4. vint.erase(pos1, pos2);代码: 1 #in... 阅读全文

posted @ 2014-08-06 17:26 醉清风JM 阅读(267) 评论(0) 推荐(0)

数据结构-各种排序算法

摘要: 实现: 1 #ifndef SORT_H 2 #define SORT_H 3 4 /** 5 * Several sorting routines. 6 * Arrays are rearranged with smallest item first. 7 */ 8 9... 阅读全文

posted @ 2014-08-06 08:22 醉清风JM 阅读(289) 评论(0) 推荐(0)

2014年8月4日

【STL】-priority_queue的用法

摘要: 初始化:priority_queue maxPQ;priority_queue,greater > minPQ;算法:minPQ.push( 4 )代码: 1 #include 2 #include 3 #include 4 #include 5 #include ... 阅读全文

posted @ 2014-08-04 23:15 醉清风JM 阅读(558) 评论(0) 推荐(0)

数据结构-二项队列

摘要: 实现: 1 #ifndef BINOMIAL_QUEUE_H 2 #define BINOMIAL_QUEUE_H 3 4 #include 5 #include 6 #include "dsexceptions.h" 7 using namespace std; 8 9 ... 阅读全文

posted @ 2014-08-04 22:54 醉清风JM 阅读(238) 评论(0) 推荐(0)

2014年8月1日

IT公司100题-8-智力题

摘要: 问题1:有两个房间,一间房里有三盏灯,另一间房有控制着三盏灯的三个开关,这两个房间是分割开的,从一间里不能看到另一间的情况。现在要求受训者分别进这两房间一次,然后判断出这三盏灯分别是由哪个开关控制的。有什么办法呢?分析:1.先走进有开关的房间,将三个开关编号为a b c。2.将开关a 打开5分钟,然... 阅读全文

posted @ 2014-08-01 16:06 醉清风JM 阅读(231) 评论(0) 推荐(0)

IT公司100题-7-判断两个链表是否相交

摘要: 问题:有一个单链表,其中可能有一个环,也就是某个节点的next指向的是链表中在它之前的节点,这样在链表的尾部形成一环。1、如何判断一个链表是不是这类链表?问题扩展:1.如果链表可能有环呢?2.如果需要求出两个链表相交的第一个节点呢?分析:在无环的情况下,如果两个链表有结点相同,那么它们下一结点也相同... 阅读全文

posted @ 2014-08-01 13:10 醉清风JM 阅读(173) 评论(0) 推荐(0)

2014年7月31日

数据结构-左式堆

摘要: 复杂度:实现: 1 #ifndef LEFTIST_HEAP_H 2 #define LEFTIST_HEAP_H 3 4 #include "dsexceptions.h" 5 #include 6 using namespace std; 7 8 // Leftist he... 阅读全文

posted @ 2014-07-31 08:02 醉清风JM 阅读(204) 评论(0) 推荐(0)

IT公司100题-6-根据上排给出十个数,在其下排填出对应的十个数

摘要: 问题描述:给你10分钟时间,根据上排给出十个数,在其下排填出对应的十个数要求下排每个数都是先前上排那十个数在下排出现的次数。上排的十个数如下:【0,1,2,3,4,5,6,7,8,9】举一个例子,数值: 0,1,2,3,4,5,6,7,8,9分配: 6,2,1,0,0,0,1,0,0,00在下排出现... 阅读全文

posted @ 2014-07-31 06:49 醉清风JM 阅读(274) 评论(0) 推荐(0)

2014年7月29日

数据结构-二叉堆

摘要: 实现:#ifndef BINARY_HEAP_H#define BINARY_HEAP_H#include "dsexceptions.h"#include using namespace std;// BinaryHeap class//// CONSTRUCTION: with an optio... 阅读全文

posted @ 2014-07-29 12:35 醉清风JM 阅读(220) 评论(0) 推荐(0)

IT公司100题-5-查找最小的k个元素

摘要: 问题描述:输入n 个整数,输出其中最小的k 个。例如输入8, 7, 6, 5, 4, 3, 2, 1这8 个数字,则最小的3 个数字为3, 2, 1。分析:时间复杂度O(nlogn)方法:对n个整数升序排序,取数组前面k个数就是最小的k个数,时间复杂度为O(nlogn),空间复杂度为O(1)。大顶堆... 阅读全文

posted @ 2014-07-29 12:17 醉清风JM 阅读(333) 评论(0) 推荐(0)

IT公司100题-4-在二元树中找出和为某一值的所有路径

摘要: 问题描述:输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。例如输入整数30和如下二元树14/ \516/ \311则打印出两条路径:14, 16 和14, 5, 11。二元树节点的数据结构定义为:typedef struc... 阅读全文

posted @ 2014-07-29 12:08 醉清风JM 阅读(297) 评论(0) 推荐(0)

2014年7月28日

IT公司100题-3-求数组的最大子序列的和

摘要: 问题描述:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2因此输出为该子数组... 阅读全文

posted @ 2014-07-28 18:25 醉清风JM 阅读(230) 评论(0) 推荐(0)

2014年7月27日

IT公司100题-2-设计带min函数的stack

摘要: 问题描述:定义栈的数据结构,要求添加一个min 函数,能够得到栈的最小元素。要求函数min、push 以及pop 的时间复杂度都是O(1)。双倍空间实现:保存2个栈,分别是元素和当前最小值。压缩空间实现:? 1 // 2.cc 2 #include 3 #include 4 using name... 阅读全文

posted @ 2014-07-27 17:12 醉清风JM 阅读(191) 评论(0) 推荐(0)

导航