2015年9月1日

【剑指offer】十一。树的子结构

摘要: 题目描述请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。分析:两棵树A 和B,判断B是不是A的子树,分为三种情况,一,A的根和B的根相同,则继续比较A的左子树与B的左子树,A的右子树与B的右子树。二,若A的根和B的根不同,这比较B是不是在... 阅读全文

posted @ 2015-09-01 22:34 小猿之路 阅读(180) 评论(0) 推荐(0)

2015年8月28日

【剑指offer】十,反转链表

摘要: 题目描述输入一个链表,反转链表后,输出链表的所有元素。分析:此题学过数据结构的应该会首先想到链表建立时所采用的头插法,即每一个新插入进来的点均插在链表头。代码如下: 1 /* 2 public class ListNode { 3 int val; 4 ListNode next =... 阅读全文

posted @ 2015-08-28 00:06 小猿之路 阅读(150) 评论(0) 推荐(0)

2015年8月27日

【剑指offer】九,链表中倒数第k个结点

摘要: 题目描述输入一个链表,输出该链表中倒数第k个结点。分析:此题为常见的快慢指针问题,java实现时要注意空指针错误以及边界条件。使用两个指针p和q,一个指针先走k-1步,然后第二个指针开始走。当第一个指针指向单链表的最后一个节点时,第二个指针指向倒数第k个节点。代码如下: 1 /* 2 public ... 阅读全文

posted @ 2015-08-27 23:58 小猿之路 阅读(146) 评论(0) 推荐(0)

【剑指offer】八,调整数组顺序使奇数位于偶数前面

摘要: 题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。分析:此题在oj上练习时多加了条件,即调整后的数字之间的顺序是不变的。目前只想到一种方法,后续有其他方法再做添加。新建一... 阅读全文

posted @ 2015-08-27 23:51 小猿之路 阅读(109) 评论(0) 推荐(0)

2015年8月26日

【剑指offer】七,二进制表示中1的个数

摘要: 题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。1 public class Solution {2 public int NumberOf1(int n) {3 int count = 0 ;4 while(n!=0){5 ... 阅读全文

posted @ 2015-08-26 12:24 小猿之路 阅读(135) 评论(0) 推荐(0)

【剑指offer】六,旋转数组中的最小数字

摘要: 题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。分析:数组旋转后会变为一个局部有序的数组,分为两部分,都是递增的。查找最小元素,我... 阅读全文

posted @ 2015-08-26 12:03 小猿之路 阅读(117) 评论(0) 推荐(0)

2015年8月24日

【剑指offer】五,二个栈实现队列

摘要: 题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。分析:栈是后进先出的数据结构,队列是先进先出的数据结构。用两个栈来模拟一个队列,可以考虑使用一个栈s1作为入队操作的栈,一个栈S2作为中介来实现出队操作,来实现队列的操作。可能面临的情况有四种(1)栈1为空,... 阅读全文

posted @ 2015-08-24 23:16 小猿之路 阅读(120) 评论(0) 推荐(0)

2015年8月23日

【剑指offer】四,二维数组中的查找

摘要: 题目描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。分析:此题的常用方法时两重for循环嵌套,遍历一遍二维数组以判断所要查找的数是否在二维数组中,时间效率低下,此处不表。考虑此处... 阅读全文

posted @ 2015-08-23 23:19 小猿之路 阅读(95) 评论(0) 推荐(0)

【剑指 offer】三,矩形覆盖(java实现)

摘要: 题目描述我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?分析:同样是典型的递归问题。如下图所示,当尝试对2×n的大矩阵进行覆盖时,如果第一块小矩阵竖着放,相当于递归的求对2×(n-1)的矩阵的覆盖方法。如果第一个矩阵横着... 阅读全文

posted @ 2015-08-23 23:00 小猿之路 阅读(406) 评论(0) 推荐(0)

【剑指offer】二,变态跳台阶(java实现)

摘要: 题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。分析参见题目一,这里就不在详述。这题没想到动态规划的做法,如果谁想到了欢迎留言。代码如下: 1 public class Solution { 2 public int Ju... 阅读全文

posted @ 2015-08-23 22:39 小猿之路 阅读(372) 评论(0) 推荐(0)

导航