- 博客(37)
- 收藏
- 关注
原创 gdfgd
@TOC欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全...
2020-04-11 20:50:54
871
原创 单链表翻转
1 :就地翻转法把当前链表的下一个节点pCur插入到头结点dummy的下一个节点中,就地反转。dummy->1->2->3->4->5的就地反转过程:dummy->2->1->3->4->5dummy->3->2->1->4->5dummy->4>-3->2->1->5...
2019-04-29 20:30:43
123
原创 剑指offer(字符串的排列)
字符串的排列题目描述输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。输入描述:输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。import java.util.ArrayList;import java.util.Arrays;publ...
2019-04-14 10:40:18
92
原创 剑指offer(二叉搜索树与双向链表)
二叉搜索树与双向链表题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。/**public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val...
2019-04-14 08:23:07
98
原创 剑指offer(二叉树中和为某一值的路径)
二叉树中和为某一值的路径题目描述输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前)import java.util.ArrayList;/**public class TreeNode { int val = 0; Tre...
2019-04-13 21:04:19
121
原创 剑指offer(二叉搜索树的后序遍历序列)
二叉搜索树的后序遍历序列题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。public class Solution { public boolean VerifySquenceOfBST(int [] sequence) { if(sequence == null || ...
2019-04-13 19:42:10
112
原创 剑指offer(按之字形顺序打印二叉树)
按之字形顺序打印二叉树题目描述请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。import java.util.ArrayList;import java.util.Stack;/*public class TreeNode { int val = 0; TreeNode l...
2019-04-13 19:39:52
94
原创 剑指offer(把二叉树打印成多行)
把二叉树打印成多行题目描述从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。import java.util.ArrayList;import java.util.Queue;import java.util.LinkedList;public class Solution { ArrayList<ArrayList<Integer> >...
2019-04-13 16:11:21
94
原创 剑指offer(正则表达式匹配)
正则表达式匹配题目描述请实现一个函数用来匹配包括’.‘和’‘的正则表达式。模式中的字符’.‘表示任意一个字符,而’'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"abaca"匹配,但是与"aa.a"和"ab*a"均不匹配public class Solution { public boolean...
2019-04-13 10:48:42
212
原创 剑指offer(从上往下打印二叉树)
从上往下打印二叉树题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。import java.util.ArrayList;import java.util.LinkedList;import java.util.Queue;/**public class TreeNode { int val = 0; TreeNode left = null; T...
2019-04-12 15:12:59
121
原创 剑指offer(栈的压入,弹出序列)
栈的压入,弹出序列题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)import java.util.ArrayList;impor...
2019-04-12 14:56:02
82
原创 剑指offer(二叉树的镜像)
二叉树的镜像题目描述操作给定的二叉树,将其变换为源二叉树的镜像。输入描述:二叉树的镜像定义:源二叉树8/ 6 10/ \ / 5 7 9 11镜像二叉树8/ 10 6/ \ / 11 9 7 5public class Solution { public void Mirror(TreeNode...
2019-04-12 14:36:15
71
原创 剑指offer(树的子结构)
树的子结构题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)public class Solution { public boolean HasSubtree(TreeNode root1,TreeNode root2) { if(root1 == null || root2 == null) return false; ...
2019-04-12 14:23:46
75
原创 剑指offer(合并两个排序的链表)
合并两个排序的链表题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。递归public class Solution { public ListNode Merge(ListNode list1,ListNode list2) { if(list1 == null){ return list2;...
2019-04-12 14:16:09
89
原创 剑指offer(翻转链表)
翻转链表题目描述输入一个链表,反转链表后,输出新链表的表头。迭代/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/public class Solution { public List...
2019-04-12 14:10:53
99
原创 剑指offer(链表中环的入口节点)
链表中环的入口节点题目描述给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。双指针一个指针 fast 每次移动两个节点,一个指针 slow 每次移动一个节点。因为存在环,所以两个指针必定相遇在环中的某个节点上。假设相遇点在下图的 z1 位置,此时 fast 移动的节点数为 x+2y+z,slow 为 x+y,由于 fast 速度比 slow 快一倍,因此 x+2y+...
2019-04-12 13:54:10
174
原创 剑指offer(链表中倒数第k个节点)
链表中倒数第k个节点题目描述输入一个链表,输出该链表中倒数第k个结点。双指针 /* * public class ListNode { int val; ListNode next = null; * * ListNode(int val) { this.val = val; } } */ public class Solution { public ListNod...
2019-04-12 13:48:02
80
原创 剑指offer(调整数组顺序使奇数位于偶数前面)
调整数组顺序使奇数位于偶数前面题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。随便一个排序就好了,然后修改一下,这里我用冒泡排序public class Solution { public void reOrderArray(int [] array) {...
2019-04-12 13:42:34
76
原创 剑指offer(删除链表中重复的节点)
删除链表中重复的节点题目描述在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5/* public class ListNode { int val; ListNode next = null; L...
2019-04-11 22:44:46
86
原创 剑指offer(数值的整数次方)
数值的整数次方题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方public class Solution { public double Power(double base, int exponent) { if(exponent > 0){ doubl...
2019-04-11 21:47:21
75
原创 剑指offer(机器人的运行路径)
机器人的运行路径题目描述地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?这个题也是一个回溯题跟我...
2019-04-11 19:10:36
145
原创 剑指offer(矩阵中的路径)
矩阵中的路径题目描述请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则之后不能再次进入这个格子。 例如 a b c e s f c s a d e e 这样的3 X 4 矩阵中包含一条字符串"bcced"的路径,但是矩阵中不包含"abcb"...
2019-04-11 16:37:24
84
原创 剑指offer(旋转数组的最小数字)
旋转数组的最小数字题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。import java.util.ArrayList;import java.util.A...
2019-04-11 10:14:40
68
原创 剑指offer(跳台阶与变态跳台阶)
跳台阶题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。public class Solution { public int JumpFloor(int target) { if(target <=2){ return target; ...
2019-04-11 10:05:44
76
原创 剑指offer(矩形覆盖)
矩形覆盖题目描述我们可以用2 * 1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2 * 1的小矩形无重叠地覆盖一个2 * n的大矩形,总共有多少种方法?这个题的思路可以是这样的,因为是n个2*1去覆盖 一个2 * n的大矩形假设第一次是横着放,那么就少了一个2 ,假设第一次是竖着放,那么就少了一个1 ,还可以再放一个竖着的public class Solution { pu...
2019-04-09 21:31:43
69
原创 剑指offer(斐波那契数列)
斐波那契数列,用递归跟迭代分别做斐波那契数列题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。递归public class Solution { public int Fibonacci(int n) { if(n <= 0) return 0; if(n == 1 || n == 2) return 1...
2019-04-09 21:22:08
56
原创 剑指offer(用两个栈实现队列)
用两个栈实现队列题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型这一题。。实在没啥意思,纯数据结构,栈的先进后出,队列的先进先出import java.util.Stack;public class Solution { Stack<Integer> stack1 = new Stack<Integer>();...
2019-04-09 21:14:45
70
原创 剑指offer(二叉树的下一个节点)
二叉树的下一个节点(其实这个题不是很严谨,应该说这是一个二叉搜索树,不然怎么保证中序遍历是顺序排列的呢)题目描述给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。因为中序遍历是按照从小到大排序的 所以 下一个字节点应该是右子树的最左边的节点 如果没有右子树,且父节点的左孩子是该节点,那就应该是父节点...
2019-04-09 21:09:38
100
原创 剑指offer(重建二叉树)
重建二叉树题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。分析前序遍历的第一个值为根节点的值,使用这个值将中序遍历结果分成两部分,左部分为树的左子树中序遍历结果,右部分为树的右子树中序遍历的结果。...
2019-04-09 20:38:44
139
原创 spring boot (一 概述)
首先声明,Spring Boot不是一门新技术,从本质上来说,Spring Boot就是Spring,它做了那些没有它你也会去做的Spring Bean配置。它使用“习惯优于配置”(项目中存在大量的配置,此外还内置了一个习惯性的配置,让你无需手动进行配置)的理念让你的项目快速运行起来。使用Spring Boot很容易创建一个独立运行(运行jar,内嵌Servlet容器)、准生产级别的基于Sprin...
2019-04-09 14:52:50
355
原创 剑指offer系列(从尾到头打印链表)
第四题 从尾到头打印链表输入一个链表,按链表值从尾到头的顺序返回一个ArrayList解法一 递归/** * public class ListNode { int val; ListNode next = null; * * ListNode(int val) { this.val = val; } } * */import java.util.ArrayList;pu...
2019-04-08 16:06:07
78
原创 剑指offer系列(替换空格)
第三题 替换空格请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。这个用java写就非常简单了直接写代码 public String replaceSpace(StringBuffer str) { StringBuilder res = ...
2019-04-08 15:47:26
68
原创 剑指offer系列(二维数组中的查找)
第二题 二维数组中的查找在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。思路 由于数组是每一行递增, 每一列递增 所以一个数,它的左边是比它小的,下边是比它大的(我们可以从最右上角开始查找,之所以不从左上角开始查找,是因为左上角元素的下边跟右边都...
2019-04-07 20:47:26
82
原创 剑指offer系列 (数组中重复的数字)
第一题 数组中重复的数字题目描述在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。分析: 由于题目要求时间复杂度 O(N),空间复杂度 O(1)。因此不能使用排序的方法,也...
2019-04-07 16:27:59
157
原创 关于递归题目的解法
处女作由于自己遇到好多次递归的问题,一开始也不是很理解,看到大佬们的题解都是膜拜ing 打算自己总结一下一般来说,递归的问题代码都非常的简洁 但简洁所带来的问题就是不容易理解,而且对于初学者来说,还会很容易转牛角尖往往递归的问题都有章可循,在A了几道题并观赏了大佬们写的代码后,总结出了递归问题的规律程序反复调用自身即是递归。我们需要关心的主要是以下三点:整个递归的终止条件。一级递归...
2019-04-05 11:26:10
392
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人