Fork me on GitHub
摘要: 题目描述思路分析测试用例Java代码代码链接题目描述定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。思路分析利用三个指针,pre,p,pNext,将p的next指向前面的节点,注意反转之后的头节点。头插法的思想,设置一个头结点,利用头插法建立链表测试用例功能测试:输入的链表含有多个节点;链表中只有一个节点。特殊输入测试:链表头节点为nullptr指针。Java代码publi... 阅读全文
posted @ 2019-08-10 16:23 这个世界~ 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 题目描述思路分析测试用例Java代码代码链接题目描述一个链表中包含环,如何找出环的入口结点?思路分析判断链表中是否有环:用快慢指针的方法,慢指针走一步,快指针走两步,如果快指针追上了慢指针,就说明有环,而且他们相遇的节点是处于环中的节点统计环中节点的个数:利用1中返回的节点,当再次走到该节点时,正好遍历了整个环,从而可以统计出个数n。找出入口结点:也是设置两个指针,第一个指针先向后移动n,第二个... 阅读全文
posted @ 2019-08-10 15:16 这个世界~ 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 题目描述思路分析测试用例Java代码代码链接题目描述输入一个链表,输出该链表中倒数第k个结点。思路分析采用双指针的方法,第一个指针首先向前移动k-1个位置,第二个指针指向头节点,然后将两个指针同时向后移动,如果第一个指针走到链表尾结点时,第二个指针的位置就正好为 倒数第k个节点测试用例功能测试:第k个节点在链表的中间;第k个节点是链表的头节点;第k个节点是链表的尾节点。特殊输入测试:链表头节点为n... 阅读全文
posted @ 2019-08-09 15:07 这个世界~ 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 题目描述思路分析测试用例Java代码代码链接题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,(偶数之间和奇数之间要保持相对顺序)思路分析如果题目没有要求保持相对顺序,则可以利用快速排序中的“二分”的思想,设置两个指针分别指向数组的头和尾,要将奇数排在偶数的前面,就要头指针扫描到偶数时停止,尾指针要扫描到奇数时停止如... 阅读全文
posted @ 2019-08-09 15:05 这个世界~ 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 一、AOP概述二、AOP的术语:三、AOP底层原理四、Spring 中的AOP1. 概述2. 分类3. Spring的传统AOP针对所有方法的增强:(不带有切点的切面)带有切点的切面:(针对目标对象的某些方法进行增强)4. 自动代理BeanNameAutoProxyCreatorDefaultAdvisorAutoProxyCreator区别:基于ProxyFattoryBean的代理与自动代理5... 阅读全文
posted @ 2019-08-09 03:05 这个世界~ 阅读(321) 评论(0) 推荐(0) 编辑
摘要: 题目描述思路分析测试用例Java代码代码链接题目描述 请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。思路分析 根据《剑指Offer》中使用A.Be/EA的模式,A部分表示带符号整数,B部分表示无.. 阅读全文
posted @ 2019-08-08 16:17 这个世界~ 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 题目描述思路分析测试用例Java代码代码链接题目描述 请实现一个函数用来匹配包括'.'和'*'的正则表达式。 模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。在本题中,匹配是指字符串的所有字符匹配整个模式。 例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配 思路分析 使用递归函数 matchCor... 阅读全文
posted @ 2019-08-08 12:22 这个世界~ 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 代理模式概述代理模式应用场景代理模式的分类静态代理概述代码动态代理概述JDK 动态代理代码CGLib动态代理代码疑惑(已解决)代理模式概述 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能. 这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如... 阅读全文
posted @ 2019-08-07 23:08 这个世界~ 阅读(216) 评论(1) 推荐(1) 编辑
摘要: 题目描述思路分析测试用例Java代码代码链接题目描述 给出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。【示例】输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> ... 阅读全文
posted @ 2019-08-07 15:35 这个世界~ 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 题目描述思路分析测试用例代码链接题目描述 给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点。思路分析 一般我们删除单链表中的节点是需要遍历链表,找到要删除节点的前一个元素,但是那样的时间复杂度为O(n),要在O(1)的时间内删除给出的节点,我们可以将删除节点p的下一个结点的值赋给p ,而我们只要删除p的下一个结点就可以了,同时我们还要注意边界值:要删除的节点p是尾结点,... 阅读全文
posted @ 2019-08-07 12:20 这个世界~ 阅读(103) 评论(0) 推荐(0) 编辑