摘要: // 面试题58(二):左旋转字符串 // 题目:字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。 // 请定义一个函数实现字符串左旋转操作的功能。比如输入字符串"abcdefg"和数 // 字2,该函数将返回左旋转2位得到的结果"cdefgab"。 #include #include void Reverse(char *pBegin, char *pEnd); ch... 阅读全文
posted @ 2019-03-16 23:01 深夜十二点三十三 阅读(176) 评论(0) 推荐(0) 编辑
摘要: // 面试题58(一):翻转单词顺序 // 题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。 // 为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. ", // 则输出"student. a am I"。 #include void Reverse(char *pBegin, char *pEnd); char* Reverse... 阅读全文
posted @ 2019-03-16 22:47 深夜十二点三十三 阅读(165) 评论(0) 推荐(0) 编辑
摘要: // 面试题57(二):为s的连续正数序列 // 题目:输入一个正数s,打印出所有和为s的连续正数序列(至少含有两个数)。 // 例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以结果打印出3个连续序列1~5、 // 4~6和7~8。 #include void PrintContinuousSequence(int small, int big); void Find... 阅读全文
posted @ 2019-03-16 22:21 深夜十二点三十三 阅读(152) 评论(0) 推荐(0) 编辑
摘要: // 面试题57(一):和为s的两个数字 // 题目:输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们 // 的和正好是s。如果有多对数字的和等于s,输出任意一对即可。 #include bool FindNumbersWithSum(int data[], int length, int sum, int* num1, int* num2) { bool ... 阅读全文
posted @ 2019-03-16 21:55 深夜十二点三十三 阅读(171) 评论(0) 推荐(0) 编辑
摘要: // 面试题56(二):数组中唯一只出现一次的数字 // 题目:在一个数组中除了一个数字只出现一次之外,其他数字都出现了三次。请 // 找出那个吃出现一次的数字。 #include int FindNumberAppearingOnce(int numbers[], int length) { if (numbers == nullptr || length = 0; --j)//... 阅读全文
posted @ 2019-03-16 19:54 深夜十二点三十三 阅读(247) 评论(0) 推荐(0) 编辑
摘要: // 面试题56(一):数组中只出现一次的两个数字 // 题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序 // 找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。 #include unsigned int FindFirstBitIs1(int num); bool IsBit1(int num, unsigned int indexBi... 阅读全文
posted @ 2019-03-16 19:37 深夜十二点三十三 阅读(309) 评论(0) 推荐(0) 编辑
摘要: // 面试题55(二):平衡二叉树 // 题目:输入一棵二叉树的根结点,判断该树是不是平衡二叉树。如果某二叉树中 // 任意结点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。 #include #include "BinaryTree.h" // ====================方法1==================== //迭代的从上到下,判断每个节点是否是平衡树,... 阅读全文
posted @ 2019-03-16 10:53 深夜十二点三十三 阅读(340) 评论(0) 推荐(0) 编辑
摘要: // 面试题55(一):二叉树的深度 // 题目:输入一棵二叉树的根结点,求该树的深度。从根结点到叶结点依次经过的 // 结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 //如果左右节点只有一个存在,则深度为该存在的节点的深度+1 //如果左右节点都存在,则深度为最大子节点深度+1 #include #include "BinaryTree.h" int TreeDep... 阅读全文
posted @ 2019-03-16 10:27 深夜十二点三十三 阅读(186) 评论(0) 推荐(0) 编辑
摘要: // 面试题54:二叉搜索树的第k个结点 // 题目:给定一棵二叉搜索树,请找出其中的第k大的结点。 #include #include "BinaryTree.h" const BinaryTreeNode* KthNodeCore(const BinaryTreeNode* pRoot, unsigned int& k); const BinaryTreeNode* KthNode(... 阅读全文
posted @ 2019-03-16 10:01 深夜十二点三十三 阅读(180) 评论(0) 推荐(0) 编辑