
剑指offer--java版
大号小白兔
One's life must be matter
展开
-
03--二维数组中的查找
题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数思路暴力方法是按照行或者列遍历,一个一个,较慢。所以需要按照从某个顶点开始,然后判断下一个方向是什么,由于该二维数组的规则,可知只能是从左下顶点或者右上顶点开始,因为左上顶点和右下定点开始遍历不...原创 2019-07-17 11:31:26 · 302 阅读 · 0 评论 -
04--字符串替换
题目请实现一个函数,把字符串中的每个空格替换成"%20",例如“We are happy.”,则输出“We%20are%20happy.”。思路最简单就是直接str.replace(),显然不能这样做…,进而想到的就是开辟一个新的数组存放结果,然后遍历字符串里的字符,判断后进行替换,存到新的数组,这个需要开辟新的空间。直接在原有的数组上进行扩容,然后从后往前,用双指针进行遍历和赋值。c...原创 2019-07-17 14:32:51 · 779 阅读 · 0 评论 -
05--从尾到头打印链表
题目输入个链表的头结点,从尾到头反过来打印出每个结点的值。思路从头遍历链表,遍历过程中用栈把节点或者节点的值保存下来,然后遍历栈即可。或者是使用递归code非递归,使用栈public void printListFromTailToHead(ListNode listNode) { Stack<ListNode> save = new...原创 2019-07-17 15:11:10 · 454 阅读 · 0 评论 -
06--重建二叉树
题目: 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。解题思路: 可以通过前序遍历和中序遍历确定一棵二叉树,也可以通过后序遍历和中序遍历确定一棵二叉树,但是无法通过前序遍历和后序...原创 2019-07-29 15:38:38 · 466 阅读 · 0 评论