- 博客(199)
- 资源 (5)
- 收藏
- 关注
原创 第四题(在二元树中找出和为某一值的所有路径)
4.在二元树中找出和为某一值的所有路径题目:输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。例如输入整数22 和如下二元树10/ \5 12/ \4 7则打印出两条路径:10, 12 和10, 5, 7。二元树节点的数据结构定义为:struct BinaryTreeNode
2014-07-12 12:44:22 545
原创 第五十七题(用俩个栈实现队列)
57.用俩个栈实现队列。题目:某队列的声明如下:template class CQueue{public:CQueue() {}~CQueue() {}void appendTail(const T& node); // append a element to tailvoid deleteHead(); // remove a element from head
2014-07-10 17:45:17 457
原创 第四十九题(排序,要求时间复杂度O(n),空间复杂度O(1))
49.一道看上去很吓人的算法面试题:如何对n 个数进行排序,要求时间复杂度O(n),空间复杂度O(1)。
2014-07-10 17:00:19 1008
原创 第五十三题(字符串的排列)
53.字符串的排列。题目:输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则输出由字符a、b、c 所能排列出来的所有字符串abc、acb、bac、bca、cab 和cba。
2014-07-10 16:38:58 510
原创 第五十二题(二元树的深度)
52.二元树的深度。题目:输入一棵二元树的根结点,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。例如:输入二元树:10/ \6 14/ / \4 12 16输出该树的深度3。namespace MS100P_52{ struct SBinaryTreeNode // a nod
2014-07-10 15:56:16 512
原创 第四十八题(左移递减数组中查找某一个数)
48.微软:一个数组是由一个递减数列左移若干位形成的,比如{4,3,2,1,6,5}是由{6,5,4,3,2,1}左移两位形成的,在这种数组中查找某一个数。 int findInShift(int data[], int begin,int end,int x) { if (begin < end) return -1; int mid = (begin + end) / 2;
2014-07-10 15:14:39 630
原创 第十题(翻转句子中单词的顺序)
第10 题翻转句子中单词的顺序。题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。例如输入“I am a student.”,则输出“student. a am I”。
2014-07-10 11:59:38 487
原创 第九题(判断整数序列是不是二元查找树的后序遍历结果)
第9 题判断整数序列是不是二元查找树的后序遍历结果题目:输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果。如果是返回true,否则返回false。例如输入5、7、6、9、11、10、8,由于这一整数序列是如下树的后序遍历结果:8/ \6 10/ \ / \5 7 9 11因此返回true。如果输入7、4、6、5,没有哪棵树的后序遍历的结果是
2014-07-10 11:56:43 886
原创 第三题(求子数组的最大和)
3.求子数组的最大和题目:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2,因此输出为该子数组的和18。思路:从左向右bia
2014-07-10 11:08:41 585
原创 第一题(二元查找树转变成排序的双向链表)
sdfd namespace MS100P_1{ struct BSTreeNode { int m_nValue; // value of node BSTreeNode *m_pLeft; // left child of node BSTreeNode *m_pRight; // right child of node }; void convert(BSTreeN
2014-07-10 10:18:25 467
原创 leetcode 刷题之路 1 Reverse Words in a String
Given an input string, reverse the string word by word.For example,Given s = "the sky is blue",return "blue is sky the".click to show clarification.Clarification:What constitutes a w
2014-07-09 21:42:29 612
原创 第七十四题(数组中超过出现次数超过一半的数字)
74.数组中超过出现次数超过一半的数字题目:数组中有一个数字出现的次数超过了数组长度的一半,找出这个数字。
2014-07-08 23:13:29 606
原创 第七十三题(对称字符串的最大长度)
73.对称字符串的最大长度。题目:输入一个字符串,输出该字符串中对称的子字符串的最大长度。比如输入字符串“google”,由于该字符串里最长的对称子字符串是“goog”,因此输出4。
2014-07-08 21:48:31 558
原创 第七十一题(数值的整数次方)
71.数值的整数次方。题目:实现函数double Power(double base, int exponent),求base 的exponent 次方。思路:
2014-07-08 16:20:10 447
原创 第六十九题(旋转数组中的最小元素)
69.旋转数组中的最小元素。题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个排好序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3, 4, 5, 1, 2}为{1, 2, 3, 4, 5}的一个旋转,该数组的最小值为1。
2014-07-08 10:44:46 462
原创 外观模式
外观模式通过为为子系统中的一组接口提供一个统一的高层接口从而使得子系统更加容易使用。外观模式是一种使用频率非常高的模式,通过引入外观角色简化了客户端与子系统之间的交互,通过一个统一的接口来使用子系统复杂的调用,降低了子系统和客户端的耦合。外观模式的UML图:
2014-07-07 01:03:15 975
原创 第八十五题(字符串复制和匹配)
85.又见字符串的问题1.给出一个函数来复制两个字符串A 和B。字符串A 的后几个字节和字符串B 的前几个字节重叠。
2014-07-06 02:41:04 729
原创 第八十八题(金山笔试题,字符串移动)
88.2005 年11 月金山笔试题。编码完成下面的处理函数。函数将字符串中的字符'*'移到串的前部分,前面的非'*'字符后移,但不能改变非'*'字符的先后顺序,函数返回串中字符'*'的数量。如原始串为:ab**cd**e*12,处理后为*****abcde12,函数并返回值为5。(要求使用尽量少的时间和辅助空间)
2014-07-05 16:27:51 999
原创 第八十九题(链表逆序,atoi函数,快速排序)
89.神州数码、华为、东软笔试题1.2005 年11 月15 日华为软件研发笔试题。实现一单链表的逆转。2.编码实现字符串转整型的函数(实现函数atoi 的功能),据说是神州数码笔试题。如将字符串”+123”123, ”-0123”-123, “123CS45”123, “123.45CS”123, “CS123.45”0
2014-07-05 15:48:16 712
原创 第九十题(1.不开辟临时空间交换 2.删除串中指定字符 3.判断链表中存在环)
1.不开辟用于交换数据的临时空间,如何完成字符串的逆序2.删除串中指定的字符3.判断单链表中是否存在环jie
2014-07-05 14:38:09 790
原创 第九十六题(编写strcpy 函数)
96.08 年中兴校园招聘笔试题1.编写strcpy 函数已知strcpy 函数的原型是char *strcpy(char *strDest, const char *strSrc);其中strDest 是目的字符串,strSrc 是源字符串。不调用C++/C 的字符串库函数,请编写函数strcpy。
2014-07-04 20:19:01 877
原创 第六十一题(找出数组中两个只出现一次的数字)
题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。分析:乍眼看上去,
2014-07-04 18:00:17 765
原创 第五十九题(用C++设计一个不能被继承的类)
题目:用C++设计一个不能被继承的类。分析:这是Adobe 公司2007 年校园招聘的最新笔试题。这道题除了考察应聘者的C++基本功底外,还能考察反应能力,是一道很好的题目。分析
2014-07-04 17:10:04 733
原创 第五十八题(从尾到头输出链表)
对方得分#include "stdafx.h"#include#includenamespace MS100P_58{ void reversePrintList(node* p) { if (p == NULL) return; reversePrintList(p->next); cout data << ' '; } void test() {
2014-07-04 15:53:56 688
原创 第五十四题(调整数组顺序使奇数位于偶数前面)
题目:namespace MS100P_54{ void createArray(int iArray[], int arrayLen) { srand((unsigned int)time(0)); for (int i = 0; i < arrayLen; i++) { iArray[i] = rand() % 189; } } void prin
2014-07-04 15:27:34 625
原创 第五十六题(最长公共子串)
最长公共字串。题目:如果字符串一的所有字符按其在字符串中的顺序出现在另外一个字符串二中,则字符串一称之为字符串二的子串。注意,并不要求子串(字符串一)的字符必须连续出现在字符串二中。请编写一个函数,输入两个字符串,求它们的最长公共子串,并打印出最长公共子串。例如:输入两个字符串BDCABA 和ABCBDAB,字符串BCBA 和BDAB 都是是它们的最长公共子串,则输出它们的
2014-07-03 10:25:02 974
原创 第四十七题(求最长递减子序列)
复杂对象的构建与它的表示分离,使得同样的构建过#includeusing namespace std;namespace MS100P_47{ /* 求一个数组的最长递减子序列 比如{9,4,3,2,5,4,3,2}的最长递减子序列为{9,5,4,3,2}*/ void printArray(int dp[], int data[], int k) { for (
2014-06-29 23:33:17 843
原创 图的遍历
/********************************************************************///图的深度搜索和广度搜索#include "stdafx.h"#include #include#include#include#includeusing namespace std;namespace BFSandDFS_LinJieBi
2014-06-29 16:19:51 668
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人