爱吃小料的毛孩子
码龄3年
关注
提问 私信
  • 博客:67,229
    67,229
    总访问量
  • 48
    原创
  • 1,109,243
    排名
  • 13
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
  • 加入CSDN时间: 2021-10-02
博客简介:

Poem_coder的博客

查看详细资料
个人成就
  • 获得31次点赞
  • 内容获得2次评论
  • 获得223次收藏
  • 代码片获得170次分享
创作历程
  • 39篇
    2022年
  • 9篇
    2021年
成就勋章
TA的专栏
  • C语言
    15篇
  • JavaSE
    13篇
  • 数据结构
    9篇
  • 数据结构相关题
    11篇
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

180人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

反射枚举及lambda的使用

一、反射
原创
发布博客 2022.04.24 ·
1005 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

数据结构之Map和Set总结

一、概念与模型1.概念:Map和set是一种专门用来进行搜索的容器或者数据结构,其搜索的效率与其具体的实例化子类有关。以前常见的搜索方式有: ①直接遍历,时间复杂度为O(N),元素如果比较多效率会非常慢 ②二分查找,时间复杂度为O(logN),但搜索前必须要求序列是有序的 。上述排序比较适合静态类型的查找,即一般不会对区间进行插入和删除操作了,而现实中的查找比如: ①根据姓名查询考试成绩 ②通讯录,即根据姓名查询联系方式 ③不重复集合,即需要先搜索关键字是否已经在集合中,可能在查找时进行一些插入和删除的
原创
发布博客 2022.04.23 ·
2930 阅读 ·
1 点赞 ·
0 评论 ·
6 收藏

数据结构之泛型总结

目录一、泛型类的引出二、泛型类的定义和使用三、泛型的编译四、泛型的上界五、泛型方法六、通配符1.什么是通配符:2.通配符可以解决的泛型问题:3.通配符的上界4.通配符的下界一、泛型类的引出1.什么是泛型一般的类和方法,只能使用具体的类型: 要么是基本类型,要么是自定义的类。如果要编写可以应用于多种类型的代码,这种刻板的限制对代码的束缚就会很大。泛型是在JDK1.5引入的新的语法,通俗讲,泛型:就是适用于许多类型。从代码上讲,就是对类型实现了参数化。
原创
发布博客 2022.04.20 ·
953 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

数据结构之排序

一、概念1.排序排序:就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。通常意义上的排序,都是指的原地排序(in place sort)2.稳定性两个相等的数据,如果经过排序后,排序算法能保证其相对位置不发生变化,则我们称该算法是具备稳定性的排序算法3.常见基于比较的排序总览二、插入排序1.原理:整个区间被分为①有序区间②无序区间,每次选择无序区间的第一个元素,在有序区间内选择合适的位置插入。过程如图所示:就拿12 5 9 4 10这组数据为例
原创
发布博客 2022.04.19 ·
1244 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

数据结构之优先级队列(堆)

一、二叉树的顺序存储使用数组保存二叉树结构,方式即将二叉树用层序遍历方式放入数组中。 一般只适合表示完全二叉树,因为非完全二叉树会有空间的浪费。 这种方式的主要用法就是堆的表示。如图所示:下标的一些关系:已知双亲(parent)的下标,则: 左孩子(left)下标 = 2 * parent + 1; 右孩子(right)下标 = 2 * parent + 2; 已知孩子(不区分左右)(child)下标,则: 双亲(parent...
原创
发布博客 2022.03.29 ·
4990 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Java对象的比较

一、基本类型的比较
原创
发布博客 2022.03.28 ·
2947 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

二叉树前中后序的非递归遍历

目录一、前序非递归遍历二、中序非递归三、后序非递归我们先分析前序的非递归遍历,中序和后序与此类似。我们也可以用迭代的方式实现方法一的递归函数,两种方式是等价的,区别在于递归的时候隐式地维护了一个栈,而我们在迭代的时候需要显式地将这个栈模拟出来,其余的实现与细节都相同。一、前序非递归遍历前序遍历:根->左->右class Solution { public List<Integer> preorderTraversal(TreeNode r
原创
发布博客 2022.03.26 ·
510 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

平衡二叉树

一、题目二、思路1.一棵树要是平衡二叉树,那么它的每颗子树都要是平衡二叉树2.root左树的高度-右树的高度<=1时间复杂度:O(n^2),其中 n是二叉树中的节点个数。最坏情况下,二叉树是满二叉树,需要遍历二叉树中的所有节点,时间复杂度是 O(n)。对于节点 p,如果它的高度是 d,则 height(p) 最多会被调用 d 次(即遍历到它的每一个祖先节点时)。对于平均的情况,一棵树的高度 h 满足 O(h)=O(logn),因为 d≤h,所以总时间复杂度为 O(nlogn)。
原创
发布博客 2022.03.25 ·
1152 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

另一棵树的子树

一、题目二、思路1.先判断两棵树是不是两颗相同的树2.如果不是,那么分别判断subRoot是不是root的左子树或者右子树(换句话来说,就是,subRoot和root的左子树或右子树是不是同一颗树)三、代码实现class Solution { private boolean isSameTree(TreeNode p, TreeNode q) { if(p == null && q == null){ retur.
原创
发布博客 2022.03.24 ·
307 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

检查两棵树是否相同

目录一、题目二、思路三、代码实现一、题目二、思路1.如果两个二叉树都为空,则两个二叉树相同2.如果两个二叉树中有且只有一个为空,则两个二叉树一定不相同3.如果两个二叉树都不为空,那么首先判断它们的根节点的值是否相同,若不相同则两个二叉树一定不同,若相同,再分别判断两个二叉树的左子树是否相同以及右子树是否相同三、代码实现class Solution { public boolean isSameTree(TreeNode p, TreeNode q) {
原创
发布博客 2022.03.23 ·
3693 阅读 ·
6 点赞 ·
0 评论 ·
13 收藏

数据结构之二叉树

一、树形结构
原创
发布博客 2022.03.22 ·
1188 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

用栈实现队列

目录一、题目二、思路三、代码实现一、题目二、思路1.入队的时候统一入到第一个栈2.出队的时候统一出第二个栈的元素,如果第二个栈为空,那么就把第一个栈里面的所有元素导过来,然后再出栈顶元素三、代码实现class MyQueue { public Stack<Integer> stack1; public Stack<Integer> stack2; public MyQueue() { sta..
原创
发布博客 2022.03.20 ·
292 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

用栈实现队列

目录一、题目二、思路三、代码实现一、题目二、思路1.入队的时候统一入到第一个栈2.出队的时候统一出第二个栈的元素,如果第二个栈为空,那么就把第一个栈里面的所有元素导过来,然后再出栈顶元素三、代码实现class MyQueue { public Stack<Integer> stack1; public Stack<Integer> stack2; public MyQueue() { sta..
原创
发布博客 2022.03.20 ·
292 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

用队列实现栈

目录一、题目二、思路三、代码实现一、题目二、思路1.入栈的时候,入到不为空的队列,刚开始都为空指定入到一个队列2.入栈的时候,找到不为空的队列,出size-1个元素到另一个队列中,剩下的这个元素就是出栈的元素如图所示:三、代码实现class MyStack { private Queue<Integer> qu1; private Queue<Integer> qu2; public MyStack() {
原创
发布博客 2022.03.19 ·
1259 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

数据结构之队列

目录一、什么是队列Queue二、Queue的一些方法三、什么是双端队列Deque四、Deque的一些方法五、队列Queue的实现六、循环队列一、什么是队列Queue1.队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out) 2.入队列:进行插入操作的一端称为队尾(Tail/Rear)3.出队列:进行删除操作的一端称为队头(Head/Front)二、Queue的一些方..
原创
发布博客 2022.03.18 ·
480 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

数据结构之栈

一、栈的概念1.栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈 顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则2.压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶3.出栈:栈的删除操作叫做出栈。出数据在栈顶4.别的一些栈:(1)虚拟机栈(JVM Stack): 一块具有栈的特性的内存,重点是存储局部变量表(当然也有其他信息) 栈帧:在调用函数时...
原创
发布博客 2022.03.15 ·
944 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

实现最小栈

一、题目二、思路三、代码实现class MinStack { private Stack<Integer> stack; private Stack<Integer> minStack; public MinStack() { stack = new Stack<>(); minStack = new Stack<>(); } public void .
原创
发布博客 2022.03.15 ·
339 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

有效的括号匹配

目录一、题目二、思路三、代码实现一、题目二、思路1.有三种考虑的方向:(1)(()左括号多(2)())右括号多(3)([)]左右括号不匹配2.使用栈来实现本题(1)如果遇到左括号就入栈(2)如果遇到右括号,就比较栈顶元素和当前的右括号是否匹配,如果匹配则出栈(3)因为栈当中存储的左括号,当遍历完整个字符串,栈还是不为空的,则左括号多,否则右括号多三、代码实现class Solution { public boolean isValid
原创
发布博客 2022.03.15 ·
655 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

栈的压入、弹出序列

一、题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。1. 0<=pushV.length ==popV.length <=10002. -1000<=pushV[i]<=10003.pushV的所有数字均不相同示例1输入:[1,...
原创
发布博客 2022.03.06 ·
315 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

逆波兰表达式

目录一、题目描述二、思路三、代码实现一、题目描述二、思路三、代码实现class Solution { public int evalRPN(String[] tokens) { Stack<Integer> stack = new Stack<>(); for(int i = 0; i < tokens.length; i++){ String val = to.
原创
发布博客 2022.03.06 ·
207 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多