
剑指Offer第二版算法题解Java
古月岚歌
这个作者很懒,什么都没留下…
展开
-
面试题4:二维数组中的查找
面试题4:二维数组中的查找题目:在一个二维数组中,每行都按照从左到右递增的顺序排行,每一列都按照从上到下递增的顺序排序。请完成个函数,输入这样的二维数组和一个整数,判断数组中是否含有该整数。例如下面的二维数组就是每行、每列都递增排序。如果在这个数组中查找数字7,则返回true;如果查找数字5,由于数组不含有该数字,则返回false. 1 2 ...原创 2018-10-31 11:06:32 · 205 阅读 · 0 评论 -
面试题5:替换空格
题目:请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。思路: 从后往前,先计算需要多少空间,然后从后往前移动,则每个字符只为移动一次,这样效率更高一点。不考虑Java里面的replaceAll()方法时。public class Solution { pu...原创 2018-10-31 11:29:48 · 130 阅读 · 0 评论 -
面试题3:数组中的重复数字
题目一:找出数组中重复的数字。在一个长度为n的数组里的所有数字都在0~n-1的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。例如,如果输入长度为7的数组{2.3,1,0,2,5,3},那么对应的输出是重复的数字2或者3。 解法:1 可以将数组排序,然后遍历数组就可以找到。时间复杂度为O(nlogn); ...原创 2018-10-30 18:06:11 · 191 阅读 · 0 评论 -
面试题6:从尾到头打印链表
题目:输入一个链表的头节点,从尾到头反过来打印出每个节点的值。解题思路:将链表 中的元素存放到栈中,然后从栈顶逐个输出节点的值。或者用递归来实现,我们每访问的一个节点的时候,先递归输出它后面的节点,再输出节点本身。 /* * 方案一:通过使用栈结构,遍历链表,把先遍历的节点的值推入栈中,遍历结束后通过弹出栈内元素 *实现逆序打印 ...原创 2018-11-09 23:40:09 · 188 阅读 · 0 评论