
剑指offer
yyyybupt
这个作者很懒,什么都没留下…
展开
-
剑指offer+面试题11-查找和排序-旋转数组的最小数字(java解答)
题目把一个数组最开始的若干元素搬到数组的末尾,即数组的旋转。输入一个递增排序数组的一个旋转,输出旋转数组的最小元素。例如:数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。思路旋转后的数组实际可以划分为两个排序的子数组用两个指针分别指向数组的第一个元素和最后一个元素(图a) 找到数组的中间元素,根据数组大小移动P1/P2到该位置-->保证...原创 2019-10-11 22:56:46 · 154 阅读 · 0 评论 -
剑指offer+面试题3-数组中重复的数字(java解答)
题目一:在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。考点:对一维数组的理解及编程能力:一维数组在内存中占据连续的空间,因此我们可以根据下标定位对应元素 分析问题的能力:通...原创 2019-07-15 09:33:30 · 176 阅读 · 0 评论 -
剑指offer+面试题5的相关题目-合并两个有序数组(java解答)
给定两个有序整数数组nums1 和 nums2,将 nums2 合并到nums1中,使得num1 成为一个有序数组。说明:初始化nums1 和 nums2 的元素数量分别为m 和 n。你可以假设nums1有足够的空间(空间大小大于或等于m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nums2 = ...原创 2019-07-23 16:45:44 · 299 阅读 · 1 评论 -
剑指offer+面试题5-字符串-替换空格(java解答)
我们介绍Java数据类型string stringbuffer和stringbuilder三者的区别String是安全的、不可变的。对已经存在的String对象的修改都是创建一个新的对象保存新的值。适用于字符串的内容不经常改变的情况,如常量声明,少量变量运算。 StringBuffer是线程安全的可变字符序列,直接对StringBuffer对象进行操作,但不能修改。所有操作类似于串行顺序...原创 2019-07-23 10:06:14 · 144 阅读 · 0 评论 -
剑指offer+面试题6-链表-从尾到头打印链表(java解答)
题目描述输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。思路1. 将链表中链接节点的指针反转,从头到尾输出。但该方法改变了原来链表的结构2. 栈:从头到尾遍历,从尾到头输出时间复杂度:O(N) 每个节点均遍历,然后栈顶元素依次输出 空间复杂度:O(N) 创建一个堆栈,将链表的所有节点,从头到尾入栈,再从尾到头出栈3. 递归:本质是一个栈结构每访问一个节点...原创 2019-09-05 11:02:37 · 125 阅读 · 0 评论 -
剑指offer+面试题8-二叉树-二叉树的下一个节点(java解答)
题目描述给定一棵二叉树和其中一个节点,如何找出中序遍历序列的下一个节点?树中的结点有三个指针:左子节点,右子节点,父节点思路若一个节点有右子树,则其下一个节点是它的右子树中的最左子节点,即从右子节点出发一直沿着指向左子节点的指针 一个节点没有右子树,若该节点是其父节点的左子节点,则其下一个节点是它的父节点 一个节点没有右子树,且是其父节点的右子节点,则沿父节点一直向上遍历,直到找到...原创 2019-09-20 08:25:50 · 198 阅读 · 0 评论 -
剑指offer+面试题9-栈和队列-用两个栈实现队列(java解答)
题目描述用两个栈实现一个队列。思路利用具体的例子,画图进行抽象所有到来的元素都压入stack1 将stack1的元素逐个弹出压入stack2,则stack2中的顺序正好和原来stack1相反 当stack2不为空,stack2栈顶的元素是最先进入队列的元素,可以弹出 当stack2为空,把stack1中所有元素逐个压入stack2,再从stack2直接弹出时间复杂度:O...原创 2019-09-21 22:29:29 · 144 阅读 · 0 评论 -
剑指offer+面试题10-递归和循环-斐波那契数列(java解答)
递归和终止递归:在一个函数内部调用这个函数自身循环:通过设置计算的初始值及终止条件,在一个范围内重复运算对比:递归实现代码更简洁,更易于实现 递归是函数自身调用,有时间和空间消耗(效率差,可能出现调用栈溢出) 递归中很多计算是重复的(用递归思路分析,自下而上循环实现)题目写一个函数,输入n,求斐波那契数列的第n项三种方法的代码实现1. 迭代:效率很低有很多...原创 2019-09-25 23:47:39 · 206 阅读 · 0 评论 -
常见查找和排序算法及java实现
我创建了一个Search包,在packageSearch内实现的算法,可以根据创建的包进行修改或者不加。顺序查找二分查找、插值查找、斐波那契分块查找二叉树查找哈希查找我创建了一个sort类,对多种排序算法的实现进行了总结归纳...原创 2019-10-02 16:11:55 · 357 阅读 · 0 评论