剑指OFFER
_BookFriend
这个作者很懒,什么都没留下…
展开
-
剑指Offer-->调整数组顺序使奇数位于偶数前面,并按顺序排列(2种方法)
从表面看好像这道题目很简单,其实做起来并没有想象中简单,个人觉得比较困难的点在于当奇数偶数已经分开但顺序没有排列的时候,对两半部分数组进行操作是稍微有些复杂的。提供了两种解法,希望大家能够有所借鉴。import java.util.Arrays;public class reOrderArray { public void reOrderArrayDemo1(int[] arra原创 2015-05-22 09:48:53 · 745 阅读 · 0 评论 -
剑指Offer-->斐波那契数列(三种实现方法)
一直学习数据结构和算法,虽然学的没有太好,但还是觉得应该做一些有意思的程序来实现以下~牛客网(大哥推荐,还有就是。。不要问我大哥是谁~~)有剑指Offer系列很多的题目,不管是大神还是。。应该去做一下,感受编程的魅力~~(首先承认自己还是有很多不足的地方,但尽量去完善每一行代码~) 废话少说,代码搞起~import java.util.Scanner;/** * 现在要求输入一个整原创 2015-04-19 19:24:32 · 524 阅读 · 0 评论 -
剑指Offer-->二叉搜索树的后序遍历序列
对于此题的解释,在注释中解释的十分详细,就不在此赘述。另外。。之前的一篇文章中提到了关于二叉树的详细说明,以及非递归、递归遍历二叉树的多种方法。 链接在此~二叉树之非递归遍历 漫谈二叉树之递归遍历 废话少说,代码搞起/** * Created by zhangshuyou on 2015/5/23. *//** * 题目描述 * 输入一个整数数组,判断该数组是不是某二原创 2015-05-23 12:58:35 · 724 阅读 · 0 评论 -
剑指Offer-->包含min函数的栈
首先我们可以想到一种很简单的方法:将元素压入栈中,当第二个元素压栈的时候,与第一个元素进行比较,然后使较大的元素出栈,压栈结束后,栈中存留的便是最小的元素。但是,如果我们要想得到下一个最小的元素呢? 另一种方法:便是建立一个辅助栈来存放最小值。 例:首先在空的数据栈中压入数字3,3是此时的最小值,把3也同时压入辅助栈; 接下来向数据栈中压入数字4,由于4>3,因此仍然向辅原创 2015-05-23 12:07:54 · 576 阅读 · 0 评论 -
剑指Offer-->从上向下打印二叉树(层序遍历 + 详解)
这道题目难度一般,重要的是想到以队列作为辅助来解决。 分析:因为按层打印的顺序决定了先打印的应该为根结点。为了接下来能够打印值为 8 的结点的两个子结点,应该在遍历到该结点时把值为 6 和 10 的两个结点保存到一个容器里,此时容器中含有 6 和 10 两个结点。按照从左到右的要求,先取出值为 6 的结点。打印出值 6 之后分别把 5 和 7 两个左右子结点放入容器 ,此时容器中的结点有三个原创 2015-05-23 12:00:11 · 658 阅读 · 0 评论 -
剑指Offer-->从上向下打印二叉树(★★)
这道题目难度一般,重要的是想到以队列作为辅助来解决。 分析:因为按层打印的顺序决定了先打印的应该为根结点。为了接下来能够打印值为 8 的结点的两个子结点,应该在遍历到该结点时把值为 6 和 10 的两个结点保存到一个容器里,此时容器中含有 6 和 10 两个结点。按照从左到右的要求,先取出值为 6 的结点。打印出值 6 之后分别把 5 和 7 两个左右子结点放入容器 ,此时容器中的结点有三个原创 2015-07-24 14:52:09 · 511 阅读 · 0 评论