剑指Offer
文章平均质量分 74
candy_crush
胡编乱写
展开
-
二维数组中的查找
题目1:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。例如:数组为:{{1,2,8,9},{2,4,9,12},{4,7,10,13},{6,8,11,15}} 目标值为7;返回true解题思路:从左下角或者右上角开始,我以右上角为例,右上角的元素和目标值比较,如果大原创 2016-10-05 10:10:30 · 248 阅读 · 0 评论 -
字符串替换
题目:请实现一个函数,将一个字符串中的空格替换成“%20”。例如:当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。思路:问题1:替换字符串,是在原来的字符串上做替换,还是新开辟一个字符串做替换!问题2:在当前字符串替换,怎么替换才更有效率(不考虑java里现有的replace方法)。 从前往后替换,后面的字符要不断往后移动原创 2016-10-05 11:27:41 · 286 阅读 · 0 评论 -
重建二叉树
题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如:输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。思路:二叉树的前序遍历时,第一个数字总是树的根节点的值。但在中序遍历中,根节点的值在序列的中间,左子树的结点的值位于根节点的值的左边,而右子树的结点原创 2016-10-05 16:56:54 · 213 阅读 · 0 评论 -
用两个栈实现队列
题目1:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。import java.util.Stack;public class Solution { Stack stack1 = new Stack(); Stack stack2 = new Stack(); public void push(int node) {原创 2016-10-05 20:10:36 · 223 阅读 · 0 评论