- 博客(93)
- 收藏
- 关注
原创 剑指Offer------顺时针打印矩阵
题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 1213 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.每次打印完一个外圈,就四个角都往内部进一位,即左上,右上,左下,右下需要注意的就是打印 下 左
2017-10-04 09:30:26 165
原创 剑指Offer------二叉树的镜像
题目描述操作给定的二叉树,将其变换为源二叉树的镜像。此题需要注意就是不要绕进去首先,得明确知道当根节点(8)的左子树和右子树交换位置后,其左子树对应的子树和右子树对应的子树位置也是交换的。故这题就很简单了,只要将所有左右子树交换位置就ok了输入描述:二叉树的镜像定义:源二叉树 8 / \ 6 10
2017-10-03 20:27:55 192
原创 剑指Offer------树的子结构
题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)分析见注解/** * * @author zy * @date 2017年10月3日 下午6:20:22 * @Decription 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) */public class Ex
2017-10-03 20:07:20 176
原创 剑指Offer------合并两个排序的链表
题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。/** * * @author zy * @date 2017年10月3日 下午5:45:14 * @Decription 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 */public class Ex9 { cl
2017-10-03 18:17:38 200
原创 剑指Offer------反转链表
题目描述输入一个链表,反转链表后,输出链表的所有元素。/** * * @author zy * @date 2017年10月3日 下午5:15:33 * @Decription 输入一个链表,反转链表后,输出链表的所有元素。 * */class ListNode { int val; ListNode next = null; ListNode(int
2017-10-03 17:23:50 232
原创 剑指Offer------链表中倒数第k个结点
题目描述输入一个链表,输出该链表中倒数第k个结点。:两个指针,先让第一个指针和第二个指针都指向头结点,然后再让第一指针走(k-1)步,即到达第k个结点。然后两个指针同时开始向后移动,当第一个指针到达最后的结点时候,第二个结点所在位置就是倒数第k个结点了。/** * * @author zy * @date 2017年10月3日 下午1:49:40 * @D
2017-10-03 16:27:05 213
原创 剑指Offer------从尾到头打印链表
题目描述:输入一个链表,从尾到头打印链表每个节点的值。采用递归思想/*** public class ListNode {* int val;* ListNode next = null;** ListNode(int val) {* this.val = val;* }* }
2017-10-03 13:46:05 162
原创 剑指Offer------调整数组顺序使奇数位于偶数前面
题目描述:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。:运用键索引技术法首先统计奇数的个数然后新建一个等长数组,设置两个指针,奇数指针从0开始,偶数指针从奇数个数的末尾开始.运用了空间换时间的算法------时间复杂度O(n),空间复杂度O(n)。/*
2017-10-03 13:19:13 190
原创 剑指Offer------重建二叉树
题目描述:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。/** * * @author zy * @date 2017年10月2日 下午1:00:17 * @Decription 输入某二
2017-10-03 10:40:27 224
原创 剑指Offer------变态跳台阶
题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。关于本题,前提是n个台阶会有一次n阶的跳法。分析如下: f(1) = 1 f(2) = f(2-1) + f(2-2) //f(2-2) 表示2阶一次跳2阶的次数。f(3) = f(3-1) + f(3-2) + f(3-3) ...
2017-10-03 10:32:40 208
原创 剑指Offer------跳台阶
题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。:1.假设当有n个台阶时假设有f(n)种走法。 2.青蛙最后一步要么跨1个台阶要么跨2个台阶。 3.当最后一步跨1个台阶时即之前有n-1个台阶,根据1的假设即n-1个台阶有f(n-1)种走法 4.
2017-10-03 09:47:24 222
原创 剑指Offer------旋转数组的最小数字
题目描述:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。:采用二分法解答,mid = (low +high)/2需要考虑三种情况:(1)array[m
2017-10-02 16:50:22 183
原创 剑指Offer------用两个栈实现队列(用两个队列实现栈)
问题一:用两个栈实现一个队列的功能?要求给出算法和思路:入队:将元素进栈A出队:判断栈B是否为空,如果为空,则将栈A中所有元素pop,并push进栈B,栈B出栈; 如果不为空,栈B直接出栈。import java.util.Stack;/** * * @author zy * @date 2017年10月2日 下午2:02:23 * @Dec
2017-10-02 14:22:12 163
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人