自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

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

文章目录三、字符串专题1、剑指Offer_05:替换空格2、剑指Offer_19:正则表达式匹配3、剑指Offer_20:表示数值的字符串4、剑指Offer_23:字符流中第一个不重复的字符5、剑指Offer_38:字符串的排列6、剑指Offer_45:把数组排成最小的数 三、字符串专题 1、剑指...

2020-04-30 23:05:33 97 0

原创 Spring:注解源码解析
原力计划

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

2020-04-28 15:00:32 201 0

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

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

2020-04-27 23:05:07 76 0

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

文章目录剑指Offer_6:从尾到头打印链表剑指offer_6(LeetCode):从尾到头打印链表剑指Offer_53:链表中环的入口节点剑指Offer_18:删除链表中重复的节点剑指Offer_22:链表中倒数第K个节点剑指Offer_24:反转链表剑指Offer_25:合并两个排序的链表剑指...

2020-04-20 13:20:52 94 0

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

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

2020-04-12 09:18:02 257 0

原创 华为机试练习_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-...

2020-04-10 14:53:59 351 0

原创 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件物品,问题转...

2020-04-09 22:03:18 73 0

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

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

2020-04-08 11:57:03 59 0

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

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

2020-04-08 11:30:24 56 0

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

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

2020-04-07 15:19:16 64 0

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

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

2020-04-07 14:38:54 50 0

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

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

2020-04-07 14:12:52 51 0

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

1、题目描述: 2、思路分析: 3、代码实现: class Solution { public boolean isSymmetric(TreeNode root) { //边界条件处理 if(root==null) return true; ...

2020-04-07 12:20:17 48 0

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

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

2020-04-07 11:26:16 51 0

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

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

2020-04-07 00:11:52 60 0

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

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

2020-04-06 20:39:09 67 0

原创 LeetCode_226:翻转二叉树

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

2020-04-06 15:18:08 52 0

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

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

2020-04-06 12:19:58 83 0

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

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

2020-04-06 10:01:38 42 0

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

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

2020-04-06 09:46:23 55 0

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

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

2020-04-05 23:07:08 42 0

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

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

2020-04-05 22:31:43 40 0

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

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

2020-04-05 21:20:01 92 0

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

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

2020-04-05 15:29:45 56 0

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

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

2020-04-05 11:00:48 45 0

原创 DataStructures - 06:栈

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

2020-04-05 09:12:42 53 0

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

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

2020-04-04 14:26:14 52 0

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

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

2020-04-02 20:12:08 81 0

原创 DataStructures - 03:排序算法

文章目录1. 冒泡排序算法2. 选择排序算法3. 插入排序算法4. 二分查找算法(非递归)5. 通过二分查找优化插入排序算法6. 归并排序算法7. 快速排序算法 说明:对于算法的学习,强烈建议Debug帮助理解,这样效果会更好。 1. 冒泡排序算法 1、执行流程: ① 从头开始比较每一对相邻元素...

2020-04-01 16:45:25 88 0

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