剑指offer
Anddy_JC
这个作者很懒,什么都没留下…
展开
-
面试题三:数组中重复的数字
题目一: 在一个长度为n的数组里的所有数字都在0~n-1的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是重复的数字2或者3. #include using namespace std; bool duplicate(int *a,int原创 2018-01-31 21:43:45 · 93 阅读 · 0 评论 -
二维数组中的查找
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下的递增顺序排序。请完成一个函数,输入这样一个二维数组和一个整数,判断数组中是否包含该整数。 #include using namespace std; bool find(int a[][4],int rows,int columns,int key){ bool flag=false; in原创 2018-02-01 02:01:24 · 109 阅读 · 0 评论 -
面试题5:替换空格
面试题5:替换空格 题目:实现一个函数,把字符串中的每个空格替换成“%20”。例如,输入“We are happy.”,则输出“We%20are%20happy.”。 解题思路: 遍历字符串,求出公有多少个字符,和有多少个空格; 因为要将空格替换成“%20”,意味着一个空格要增加两个长度。 所以新的字符长度为 原有长度+空格长度*2; 这是一个指针p1,放在久长度尾部,p2,放在原创 2018-02-02 01:22:41 · 140 阅读 · 0 评论 -
重建二叉树
题目:输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树,假设输入的前序遍历和中序遍历的结果中都不含有重复值。 前序遍历:{1,2,4,7,3,5,6,8} 中序遍历:{4,7,2,1,5,3,8,6} 主要思路: 1.前序遍历的第一个元素是根节点,将根初始化。 2.在中序遍历中找到根的位置,根的左边是左子树,右边是右子树。 3.然后原创 2018-02-06 01:32:04 · 108 阅读 · 0 评论