
剑指offer
文章平均质量分 50
Eve慕
这个作者很懒,什么都没留下…
展开
-
【剑指Offer】二维数组中的查找
二维数组中的查找题目描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 思路:这是一个很特殊的二维数组,如下图所示,左上角a[0][0]的元素最小,右下角a[row][col]的元素最大。那么我们依据这个特性,可以想到一种很简单的算法。从左下角a[0][col]这个元素开始遍历,...原创 2018-07-09 15:07:28 · 218 阅读 · 0 评论 -
【剑指Offer】替换空格
替换空格题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 解法一:使用同一个字符数组,不需要额外的数组思路这个题目和一般的替换空格最大的不同就是它是要用%20这三个字符来代替空格,所以整个字符串长度会随着空格个数增加,原字符串每有一个空格,结果字符串长度就需...原创 2018-07-24 20:38:00 · 192 阅读 · 0 评论 -
【剑指Offer】从尾到头打印链表(链表的逆序输出)
目录 题目描述解法一:使用栈解法二:递归解法三:将原链表逆转题目描述输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。解法一:使用栈单向链表的逆序输出,我们可以很容易的想到使用一个栈作为辅助,栈的先进后出的特性能帮到我们大忙。(所以基础的数据结构是真的很重要)/*** public class ListNode {* ...原创 2018-07-25 20:20:48 · 449 阅读 · 0 评论 -
【剑指Offer】重建二叉树
重建二叉树题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。思路前序遍历为“根-左-右”,中序遍历为“左-根-右”,就是根据前序和中序数组还原二叉树。那么我们手动还原的流程是:从前序遍历中找...原创 2018-07-26 22:21:36 · 188 阅读 · 0 评论 -
【剑指Offer】用两个栈实现队列&&用两个队列实现栈
用两个栈实现队列题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。思路: 栈是先进后出的数据结构,而队列是先进先出。为了实现队列,那么我们必须将数据先压入其中一个栈(栈A)中,数据压入完毕之后,将数据都出栈,并压入另一个栈(栈B)中,压入完毕之后栈B中元素出栈,就达到了先进先出的效果。 那么我们在push时所需要做的...原创 2018-08-07 11:17:07 · 426 阅读 · 1 评论