自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

你今天真好看

不积跬步无以至千里

  • 博客(29)
  • 论坛 (1)
  • 收藏
  • 关注

原创 一刷剑指Offer:字符串专题

文章目录三、字符串专题1、剑指Offer_05:替换空格2、剑指Offer_19:正则表达式匹配3、剑指Offer_20:表示数值的字符串4、剑指Offer_23:字符流中第一个不重复的字符5、剑指Offer_38:字符串的排列6、剑指Offer_45:把数组排成最小的数三、字符串专题1、剑指Offer_05:替换空格题目:请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字...

2020-04-30 23:05:33 115

原创 Spring:注解源码解析

文章目录Spring IOC注解解析一、组件注册的几种方式1、@Configuration注解2、@ComponentScan注解1、自动扫描组件2、指定扫描规则3、自定义FilterType指定过滤规则3、@Scope注解4、@Lazy注解5、@Import注解1、使用类名导入组件2、ImportSelector3.ImportBeanDefinitionRegistrar6、FactoryBe...

2020-04-28 15:00:32 359

原创 一刷剑指Offer:数组专题

文章目录二、数组专题1、剑指Offer_04:二维数组的查找2、剑指Offer_03:数组汇总重复的数字3、剑指Offer_66:构建乘积数组4、剑指Offer_21:调整数组顺序使得奇数位于偶数前面5、剑指Offer_29:顺时针打印矩阵6、剑指Offer_42:连续子数组的最大和7、剑指Offer_45:把数组排成最小的数二、数组专题1、剑指Offer_04:二维数组的查找题目:在一个二...

2020-04-27 23:05:07 93

原创 一刷剑指Offer:链表专题

文章目录剑指Offer_6:从尾到头打印链表剑指offer_6(LeetCode):从尾到头打印链表剑指Offer_53:链表中环的入口节点剑指Offer_18:删除链表中重复的节点剑指Offer_22:链表中倒数第K个节点剑指Offer_24:反转链表剑指Offer_25:合并两个排序的链表剑指Offer_36:二叉搜索树与双向链表剑指Offer_52:两个链表的第一个公共节点剑指Offer_...

2020-04-20 13:20:52 116

原创 谈谈Scanner类的next()和hasNext()方法

文章目录1、hasNext()与next()1、示例12、示例23、示例34、示例42、hasNextLine()与nextLine()1、hasNext()与next()在默认情况下,Scanner使用空格和回车作为多个输入项之间的分隔符hasNext():判断是否还有下一个输入项。next():获取下一个输入项。对比下面的几个示例:1、示例1public class Scan...

2020-04-12 09:18:02 387

原创 华为机试练习_16:购物单(有依赖的背包问题)

1、题目描述2、思路分析1、本题属于依赖背包问题:有四种情况:只取主件:f[i-1,j-a[i,0]]+a[i,0]*b[i,0]取主件+附件1:f[i-1,j-a[i,0]-a[i,1]]+a[i,0]*b[i,0]+a[i,1]*b[i,1]取主件+附件2:f[i-1,j-a[i,0]-a[i,2]]+a[i,0]*b[i,0]+a[i,2]*b[i,2]既主件+附件1+...

2020-04-10 14:53:59 728

原创 DataStructures - 07:动态规划之0-1背包问题

1. 问题描述2. 思路分析二维动态规划的的状态转移方程为:dp[i][j] = max(dp[i-1][j], dp[i-1][j-v[i]] + w[i])(1) 果不装第 i件物品,问题就转化为“前 i−1 件物品放入容量为 j的背包中的最大价值”(2) 装第i件物品,问题转化为“前 i−1 件物品放入剩下容量为 j−v[i] 的背包中的最大价值”状态转移方程:定义f[i]...

2020-04-09 22:03:18 86

原创 一刷剑指Offer_54:二叉搜索树的第K大节点

1、题目描述:给定一棵二叉搜索树,请找出其中第k大的节点2、思路分析:得二叉搜索树的 中序遍历倒序 为 递减序列 。/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * ...

2020-04-08 11:57:03 76

原创 一刷剑指Offer_33:二叉搜索树的后序遍历序列

1、题目描述:2、思路分析:这一题可以和剑指Offer的重建二叉树一起做,两题有异曲同工之处。class Solution { public boolean verifyPostorder(int[] postorder) { //利用helper来递归判断该序列是否为二叉搜索树的后序序列 return helper(postorder,0,po...

2020-04-08 11:30:24 66

原创 一刷剑指Offer_32:按之字顺序打印二叉树

1、题目描述:2、思路分析:这一个题和上一题类似,考查二叉树的层序遍历,同样是将一层的数据放到一个集合中,但是不同的是,如果是奇数层按照从左到右的顺序放入集合中,如果是偶数层按照从右到左的顺序放入集合中。最后每一层的数据放入一个大的集合中。我们可以多定义一个变量,用来判断是奇数层还是偶数层,如果是奇数层,就将队列中出队的数据放入集合的尾部,如果是偶数层,就将队列出队的数据放入集合的头部。...

2020-04-07 15:19:16 78

原创 一刷剑指Offer_32:把二叉树打印成多行

1、题目描述:2、思路分析:本题考查的仍然是层序遍历,与上题不同的是,本题要求每一层 的数据放到一个集合中,最后各层的数据统一放到一个大的集合中。3、代码实现:class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; } }class...

2020-04-07 14:38:54 62

原创 一刷剑指Offer_32:从上到下打印二叉树

1、题目描述:2、思路分析:本题考查的就是层序遍历,但是与之前的题不同的是,本题返回的是一个数组,因此需要将集合转换为数组后再返回。3、代码实现:class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; } }class Soluti...

2020-04-07 14:12:52 64

原创 一刷剑指Offer_28:对称的二叉树

1、题目描述:2、思路分析:3、代码实现:class Solution { public boolean isSymmetric(TreeNode root) { //边界条件处理 if(root==null) return true; /** * 借助helper()方法判断左右子树的结构是否对称 ...

2020-04-07 12:20:17 59

原创 一刷剑指Offer_26:树的子结构

1、题目描述:输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构)B是A的子结构, 即 A中有出现和B相同的结构和节点值。2、思路分析:判断B树为A树的子结构,A树的任何一个节点都有可能是B树的根节点,因此需要遍历A树的每一个节点,并判断以当前节点为根节点的子树是否包含B树。3、代码实现:class Solution { public boole...

2020-04-07 11:26:16 58

原创 一刷剑指Offer_12:二叉树的下一个节点

1、题目描述:给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。2、思路分析:这题考查中序遍历二叉树的后继节点,即中序遍历的序列中的一个节点的后一个节点。3、代码实现:...

2020-04-07 00:11:52 76

原创 一刷剑指Offer_07:重构二叉树

1、题目描述:2、思路:前序遍历的第 1 个结点一定是二叉树的根结点;在中序遍历中,根结点把中序遍历序列分成了两个部分,左边部分构成了二叉树的根结点的左子树,右边部分构成了二叉树的根结点的右子树。查找根结点在中序遍历序列中的位置。3、代码实现:class TreeNode { int val; TreeNode left; TreeNode right; Tre...

2020-04-06 20:39:09 80

原创 LeetCode_226:翻转二叉树

1、题目描述:2、思路:翻转二叉树其实就是将所有节点的左右子树都交换。本质就是遍历,四种遍历方式都可以解决这个问题。3、代码实现:public class Node { int val; Node left; Node right; Node(int val){ this.val = val; } @Override ...

2020-04-06 15:18:08 66

原创 一刷剑指Offer_55:二叉树的深度

1、题目描述:2、递归思路:返回左右子节点的高度的最大值+1(1是当前节点)3、测试代码实现:public class Node { int value; Node left; Node right; Node(int value){ this.value = value; }}class Solution { pri...

2020-04-06 12:19:58 95

原创 LeetCode_94:二叉树的中序遍历

1、题目描述:2、代码实现:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class So...

2020-04-06 10:01:38 50

原创 LeetCode_107:二叉树的层序遍历II

1、题目描述:2、思路:方式1:层序遍历需要使用队列,每次让根节点入队,然后出队,和102题差不多,不过最后需要反转一下。方式2:添加到集合中时,每次从头部添加3、代码实现:(1)Node节点类public class Node { int val; Node left; Node right; Node(int val){ this....

2020-04-06 09:46:23 66

原创 LeetCode_145:二叉树的后序遍历

1、题目描述:2、思路:后序遍历:遍历左子树,右子树,根节点定义一个辅助函数,是的每次传入的list为同一个3、递归算法实现:(1) Node节点类:public class Node { int val; Node left; Node right; Node(int val){ this.val = val; }}(2...

2020-04-05 23:07:08 53

原创 LeetCode_144:二叉树的前序遍历

1、题目描述:2、思路:前序遍历:先遍历跟节点,然后前序遍历左子树,前序遍历右子树由于遍历后的数据需要存放在集合中,因此每次递归传入一个list集合,重载方法。3、递归方法实现:(1)节点类Node:public class Node { int val; Node left; Node right; Node(int val){ th...

2020-04-05 22:31:43 50

原创 LeetCode_102:二叉树的层序遍历

1、题目描述:2、思路分析:3、算法实现:为了能够验证输出结果,所以写了一个Node类和Main类(1)节点类:public class Node { int val; Node left; Node right; Node(int val){ this.val = val; }}(2)二叉树类:public class...

2020-04-05 21:20:01 108

原创 一刷剑指Offer_31:栈的压入和弹出序列

1、题目描述:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2,1} 是该压栈序列对应的一个弹出序列,但 {4,3,5,1,2} 就不可能是该压栈序列的弹出序列。2、示例:输入:pushed = [1,2,3,4,5], popped = [4,5,...

2020-04-05 15:29:45 64

原创 一刷剑指Offer_30:包含min函数的栈

1、题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。2、示例:MinStack minStack = new MinStack();minStack.push(-2);minStack.push(0);minStack.push(-3);minStack.min(); --...

2020-04-05 11:00:48 52

原创 DataStructures - 06:栈

文章目录1. 栈的概念2. 数组模拟栈3. 逆波兰表达式1. 栈的概念2. 数组模拟栈public class ArrayStack { private int maxSize; private int[] stack; private int top = -1; public ArrayStack(int maxSize){ this...

2020-04-05 09:12:42 66

原创 DataStructures - 05:二叉排序树与AVL树

文章目录1、二叉排序树BST1.1 创建二叉排序树并遍历1.2 二叉排序树删除节点2、平衡二叉排序树AVL树2.1 左旋转2.2 右旋转2.3 双旋转1、二叉排序树BSTBinary Sort Tree:对于二叉排序树的任何一个非叶子节点,要求其左子节点的值比当前节点的值小,右子节点的值比当前节点的值大。1.1 创建二叉排序树并遍历将一个数组创建成对应的二叉排序树,并使用中序遍历二叉排序...

2020-04-04 14:26:14 76

原创 DataStructures - 04 :二叉树_二叉树与数组_线索化_堆

文章目录1、二叉树1.1 二叉树的遍历1.2 二叉树查找某个节点1.3 二叉树删除某个节点2、顺序存储二叉树3、线索化二叉树3.1 实现线索化二叉树3.2 线索化二叉树的遍历4、二叉堆4.1 堆的概念4.2 堆排序1、二叉树1.1 二叉树的遍历1、概念:前序遍历:根节点、当前节点左子树、当前节点右子树: 1、2、3、5、4中序遍历:当前节点左子树、 根节点、当前节点右子树:2、...

2020-04-02 20:12:08 96

原创 DataStructures - 03:排序算法

文章目录1. 冒泡排序算法2. 选择排序算法3. 插入排序算法4. 二分查找算法(非递归)5. 通过二分查找优化插入排序算法6. 归并排序算法7. 快速排序算法说明:对于算法的学习,强烈建议Debug帮助理解,这样效果会更好。1. 冒泡排序算法1、执行流程:① 从头开始比较每一对相邻元素,如果第1个比第2个大,就交换它们的位置✓ 执行完一轮后,最末尾那个元素就是最大的元素② 忽略 ①...

2020-04-01 16:45:25 107

空空如也

茶花女-的留言板

发表于 2020-01-02 最后回复 2020-03-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

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