hh_zheng的博客

一次只做一件事,并做好它!

排序:
默认
按更新时间
按访问量

MyBatis配置延迟加载,以及延迟加载无效的问题

延迟加载的意思是说,在关联查询时,利用延迟加载,先加载主信息。需要关联信息时再去按需加载关联信息。这样会大大提高数据库性能。首先在resultMap标签中的association和collection标签具有延迟加载的功能第二,在xxxConfig.xml中需要开启延迟加载:&lt...

2018-04-25 16:08:46

阅读数:7

评论数:0

spring+JDBC+dbcp出现连接不上异常,请问如何解决

就是做一个通过Spring JdbcTemplate连接数据库的Demo,发生了错误,花了很长时间解决,记下来希望可以帮到碰到类似问题的人!控制台大概就是这么一堆连接错误org.springframework.jdbc.CannotGetJdbcConnectionException: Could...

2018-04-22 22:50:27

阅读数:7

评论数:0

剑指Offer 面试题34:二叉树中和为某一值的路径 Java代码实现

题目:输入一棵二叉树和整数,打印出二叉树中节点值得和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的节点形成一条路径。 解题思路:路径从根节点开始,应该用类似于前序遍历的方式访问树节点。我们需要整个路径,就需要一个容器保存经过路径上的节点,以及一个变量记录当前已有节点元素的和。当前...

2018-01-11 21:09:58

阅读数:42

评论数:0

剑指Offer 面试题33:二叉搜索树的后序遍历序列 Java代码实现

题目:输入一个整数数组,判断该数组是不是某个二叉搜索树的后序遍历序列。假设数组的任意两个数字都不相同。 解题思路:这里是二叉搜索树,其左子树应该都小于根节点,右子树则都大于根节点。在后续遍历序列中,最后一个数字是根节点,我们根据最后一个数字可以把数组剩余部分按顺序分成两块,小于该数字的以及剩下的...

2018-01-11 20:49:51

阅读数:43

评论数:0

剑指Offer 面试题32:从上到下打印二叉树 Java代码实现

题目一:不分行从上到下打印二叉树 解题思路:这其实就是二叉树的层次遍历,树的其他几种遍历方式容易用递归或者借助栈结构实现遍历。分析层次遍历的顺序,不难发现这儿可以借助一个队列作为辅助容器实现层次遍历。具体代码如下: // 层次遍历打印二叉树 public ArrayList printFro...

2018-01-11 20:30:12

阅读数:53

评论数:0

剑指Offer 面试题31:栈的压入、弹出序列 Java代码实现

题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。 解题思路:判断一个序列是不是栈的弹出顺序的规律:如果下一个弹出的数字刚好是栈顶数字,那么直接弹出。如果下一个弹出的数字不在栈顶,我们把压栈序列中还没有入栈的数字压入辅助栈,知...

2018-01-11 20:21:26

阅读数:49

评论数:0

剑指Offer 面试题30:包含min函数的栈 Java代码实现

题目:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数。在该栈中,调用min,push及pop的时间复杂度都是O(1) 这道题第一反应就是用一个额外的变量存储栈中的最小元素,但是仔细一想,在取出这个最小元素之后呢?怎么得到下一个最小元素。也就是说,在压入这个最小元素...

2017-12-26 21:17:59

阅读数:30

评论数:0

剑指Offer 面试题29:顺时针打印 Java代码实现

题目:输入一个矩阵按照从外向里以顺时针的顺序依次打印出每一个数字。 把矩阵想象成若干个圈,可以用一个循环来打印矩阵,每一次打印矩阵中的一个圈。此外还需要给出循环结束的条件,我们总是从左上角开始打印,开始的下标依次为(0,0)、(1,1)、(2,2)...举几个栗子,可以得到循环终止条件为,col...

2017-12-26 20:59:59

阅读数:22

评论数:0

剑指Offer 面试题28:判断一棵二叉树是否镜对称 Java代码实现

题目:请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的. public static boolean isSymmetrical(TreeNode root){ if(root==null) return true; r...

2017-12-26 20:50:19

阅读数:23

评论数:0

剑指Offer 面试题27:二叉树的镜像 Java代码实现

题目:输入一个二叉树,输出该二叉树的镜像。 分析树的镜像的定义,就是前序遍历二叉树,如果存在左右子树,就交换左右节点。方便用递归实现。 public static void mirrorTree(TreeNode root){ //递归结束条件 if(root==null) retu...

2017-12-07 16:49:56

阅读数:34

评论数:2

剑指Offer 面试题26:树的子结构 Java代码实现

题目:输入两棵二叉树A和B,判断B是不是A的子结构。 解题思路分为两步: 1.在树A中找到节点值跟B根节点值相同的节点R 2.判断A中以R为根节点的子树是否包含和树B一样的结构 //递归hasSubtree其实就是前序遍历了root1 //如果发现root1中存在节点的值等于root2的根节点...

2017-12-07 16:27:25

阅读数:31

评论数:0

剑指Offer 面试题25:合并两个排序的链表(递归+非递归) Java代码实现

题目:输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。 不断比较两个链表中的节点,将小的添加到新的链表中,直到有一个链表全部添加完后,直接把另一个链表剩下的拼接到新链表后。要注意空链表的处理。 非递归的代码: //采用不带头结点的链表 非递归实现 public ...

2017-12-07 16:09:19

阅读数:40

评论数:0

剑指Offer 面试题23:链表中环的入口节点 Java代码实现

题目描述 一个链表中包含环,请找出该链表的环的入口结点。 这题又用到了一快一慢两个指针的方法,快指针一次走两步慢指针一次走一步。可以证明,若存在环路,则这两个指针一定会在环路中某个地方相遇。这也是检测一个链表是否存在环路的方式。 接下来具体分析一下这两个指针什么时候会相遇。假设从第一个数据节点到...

2017-11-29 22:07:16

阅读数:64

评论数:0

剑指Offer 面试题24:反转链表 Java代码实现

题目:定义一函数,输入链表的头结点,反转该链表并输出反转后的链表头结点。 因为在反转一个节点时,需要把该节点的指针域指向其前一节点,这样就无法访问其后续节点。所以,需要有三个指针分别指向当前节点,前一节点以及后一节点。同样,习惯使用带有头结点的链表结构,第一个数据域为head.next。代码...

2017-11-29 21:51:08

阅读数:75

评论数:0

剑指Offer 面试题22:链表中倒数第k个节点 Java代码实现

题目 输入一个链表,输出该链表中倒数第k个结点。 这个问题可以用两个链表指针来实现,这个方法在单向链表的问题中经常使用。具体而言,就是一快一慢两个指针,快指针先走(k-1)步,然后两个指针同时走,当快指针到达链表尾部的时候,慢指针就指向倒数第k个节点。当然移动过程中,还需要判断链表是否存在倒数第...

2017-11-26 13:28:27

阅读数:67

评论数:0

剑指Offer 面试题21:调整数组顺序使奇数位于偶数前面 Java代码实现

题目:输入一个整数数组,实现一个函数调整数组中数字的顺序,使得所有奇数位于数组前半部分,偶数位于后半部分。 最容易想到的方法就是从前往后扫描数组,每遇到一个偶数,取出这个数字,后面所有数字往前挪,然后把这个偶数放在数组末尾。这样的时间复杂度是O(n^2)。 为了提高效率,用两个指针,一个指向数...

2017-11-20 21:40:21

阅读数:67

评论数:0

剑指Offer 面试题20:表示数值的字符串 Java代码实现

题目:表示数值的字符串 不喜欢这道题目,偷懒用Java正则表达式和String类的方法来处理了 public static boolean isNumeric(String str){ String regex="[+-]?\\d*(\\.\\d*...

2017-11-20 21:27:47

阅读数:37

评论数:0

剑指Offer 面试题19:正则表达式匹配 Java代码实现

题目:正则表达式匹配 请实现一个函数用来匹配包含'.'和'*'的正则表达式。字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次) 主要思想就是字符的第一个字符和模式第一个字符相匹配,那么字符串和模式都向后移动一个字符继续匹配;出现不匹配时直接返回f...

2017-11-20 19:58:50

阅读数:226

评论数:0

剑指Offer 面试题18:删除链表节点 Java代码实现

题目:在O(1)时间内删除链表节点。 给定单向链表头指针和一个节点指针,定义一个函数在O(1)时间内删除该节点。 这儿采用有头结点的单链表结构,头结点的存在是为了方便操作,针对单链表来说,如果带头结点的话,头指针指向头结点,头结点指向首结点;如果不带头结点的话,头指针指向首结点,如果进行插入和...

2017-11-16 22:08:36

阅读数:73

评论数:1

剑指Offer 面试题17:打印从1到最大的n位数 Java代码实现

题目:输入数字n,按顺序打印从1到最大的n位的十进制数。比如,输入3,则打印出1、2、3一直到999。 这个题目好像很简单,求出最大的n位数,然后for循环打印就好了。但是Java中int类型的范围是-2147483648~2147483647,也就是输入的n如果是10,那么int的范围就不够...

2017-11-14 21:40:50

阅读数:98

评论数:1

提示
确定要删除当前文章?
取消 删除
关闭
关闭