- 博客(31)
- 资源 (1)
- 收藏
- 关注
原创 2015华为机试题整理
第一题 求最大公约数输入一组正整数(数量小于20),输出其最大公约数。输入:121 33 44 11 1111输出:11第二题 相同子串 输入一个数字(最多15个),去掉连续次数大于等于三的数字,如果去掉后仍有连续次数大于等于三的,继续进行同样的处理,直到结果中没有出现连续次数大于等于三的数字为止。如果最终全部消除完了 输出“none”输入:1 1 1
2014-09-14 13:14:48
2389
原创 二叉树结点的最大距离
/* 二叉树结点中的最大距离*/struct Node{ Node* pLeft; //左子树 Node* pRight; //右子树 int nMaxLeft; //左子树中的最长距离 int nMaxRight; //右子树中的最长距离 char chValue; //该节点的值};int nM
2014-09-11 22:42:15
623
原创 约瑟夫环
#include #include #include typedef struct LNode{ int data; struct LNode* link;}LNode, *LinkList;void JOSEPHUS(int n, int k, int m) //n是总人数,k是第一个开始报数的人,m是出列者喊到的数{ LinkList p, r, curr; p=
2014-09-02 20:42:46
317
原创 [排序]快速排序
#include int Partition(int *iArray, int i, int j){ int pivot = iArray[ i ]; while(i < j) { while(i = pivot ) { j --; } if(i < j) { iArray[ i ++ ] = iArray[ j ]; } while(i
2014-09-02 09:22:39
311
原创 [剑指offer]面试题42:翻转单词顺序,左旋转字符串
/*************************************************************************************题目一:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。**标点符号和普通字母一样处理。**例如输入字符串"I am a student.",则输出"student. a am I"。**********
2014-09-01 11:11:49
437
原创 [剑指offer]面试题34:丑数
int Min(int number1, int number2, int number3);int GetUglyNumber_Solution2(int index){ if(index <= 0) return 0; int *pUglyNumbers = new int[index]; pUglyNumbers[0] = 1; in
2014-08-31 23:45:51
344
原创 [剑指offer]面试题37:两个链表的第一个公共结点
/**************************************************************************题目:输入两个链表,找出它们的第一个公共结点。方法:在较长的链表上先走几步,再同时遍历找公共结点*************************************************************************
2014-08-31 23:33:34
336
原创 [剑指offer]面试题40:数组中只出现一次的数字
/*题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次。**找出这两个数字。要求:时间复杂度是O(n),空间复杂度是O(1)*****************************************************************************/void FindNumAppearOnce(int data[], int length, int*
2014-08-31 22:05:29
300
原创 [剑指offer]面试题41:和为s的两个数字,和为s的连续正数序列
/***************************************************************************************在排序数组中找和为s的两个数字,输出任意一组*************************************方法:设置首位两个指针,将其指向的值相加的和与sum比较,根据情况移动指针*************
2014-08-31 21:24:52
345
原创 字符串过滤
/*字符串过滤并按照字母顺序排列样例输入:bbdfafedsgssg样例输出:abdefgs思想:对输入的字符串排序,用另一个字符串输出,判断前一个字符是否和后一个相同,不同则输出*/#include#include#includeusing namespace std;char str1[100], str2[100];int main(){ int i, len, m=
2014-07-10 14:33:10
417
原创 单链表的逆置
#include #include struct node { int data; struct node *m_pNext;};typedef struct node * PNode;//PNode相当于node*/*递归版PNode reverseList(PNode head) { if(head == NULL || head->m_pNext =
2014-07-10 14:12:31
379
原创 两个字符串的最长公共子串
#include "stdio.h" #include "malloc.h" #include "string.h" char *maxsubstr(char *str1, char *str2) { char *p1, *p2, *q1, *q2, *destp; char *substr; int max = 0, len
2014-07-10 14:03:42
327
原创 快速排序
//快速排序#include using namespace std;#include //计算排序时间typedef int T;void sort (T a[], int n)//(T* a, int n){ if(n<=1) return; swap(*a, a[n>>1]); T* L=a+1; T* R=a+n-1; T v=*a; while(L<R) {
2014-07-10 10:46:24
291
原创 三天打鱼两天晒网
/*************************************************************************************************************中国有句俗语叫"三天打鱼两天晒网"。某人从1990年1月1日起开始 *
2014-07-10 10:31:43
511
原创 链表操作
#include using namespace std;//链表的定义typedef int T;class List {struct Node {T data;Node* next;Node (const T & t=T()):data(t){next=NULL;}};Node* head;public :List(): head (NULL) {}void cle
2014-07-10 10:25:21
274
原创 求二进制中1的个数
这道题在《编程之美》和《剑指offer》上都有,本文加以整理。(以32位为例)首先,都知道用n&(n-1)把整数n最右边的1变为0,于是就有个“目前”个人认为最好的方法int Count(int n){ int num =0; while(n) { n &= (n-1);//将整数最右边的1变为0,有多少1就做多少次这种操作。 num++; } return num
2014-07-09 20:26:42
430
原创 已知二叉树的先序遍历和中序遍历序列,输出后序遍历序列
#include #includeconst int N=20;char s1[N], s2[N], ans[N];void build(int n, char* s1, char* s2, char* s){ if(n <= 0) return; int p = strchr(s2, s1[0]) - s2;//strchr----找到s1[0]在s2中的位置 build(p,
2014-07-08 22:38:14
7875
转载 将整数倒序输出,剔除重复数据
输入一个整数,如12336544,或1750,然后从最后一位开始倒过来输出,最后如果是0,则不输出,输出的数字是不带重复数字的,所以上面的输出是456321和571。如果是负数,比如输入-175,输出-571。
2014-07-08 12:48:47
923
原创 找礼仪
要从5个人中选取2个人作为礼仪,其中每个人的身高范围为160-190,要求2个人的身高差值最小(如果差值相同的话,选取其中最高的两人),以升序输出两个人的身高。样例输入161 189 167 172 188 样例输出: 188 189
2014-07-08 12:46:39
340
转载 开灯问题
有n盏灯,编号为1-n 第一个人把所有的灯都打开,第二个人按下所有编号为2的倍数的开关(这些灯将被关掉),第3个人按下所有编号为3的倍数的开关(其中关掉的灯将被打开,开着的灯将被关掉),依此类推。一共有k个人,问最后有哪些灯开着?输入:n和k,输出开着的灯的编号。k样例输入:7 3样例输出:1 5 6 7
2014-07-08 11:28:46
429
原创 大数相减
输入两行字符串正整数,第一行是被减数,第二行是减数,输出第一行减去第二行的结果。备注:1、两个整数都是正整数,被减数大于减数示例:输入:1000000000000001 1输出:1000000000000000可以用与大数相加类似的方法
2014-07-08 10:43:35
505
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人