Growing Hacker
码龄3年
关注
提问 私信
  • 博客:11,957
    社区:1
    问答:725
    12,683
    总访问量
  • 37
    原创
  • 767,813
    排名
  • 3
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
  • 加入CSDN时间: 2021-10-18
博客简介:

m0_63117721的博客

查看详细资料
个人成就
  • 获得11次点赞
  • 内容获得23次评论
  • 获得35次收藏
  • 代码片获得165次分享
创作历程
  • 36篇
    2023年
  • 1篇
    2022年
成就勋章
创作活动更多

如何做好一份技术文档?

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

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

SqlSugarCore 连接mysql 8.0.33 报错

发布问题 2024.03.12 ·
3 回答

Nacos 小bug: application.properties配置未生效,导致端口未生效

现在配置生效了,我又好奇看了下shell文件,它不是1.4.5出了这个问题吗,发现1.4.6改好了,但是Windows的cmd文件没人提他就不管了【我是哭笑包】【我是哭笑包】【我是哭笑包】。最近用了下nacos 1.4.6 ,发现windows 中修改配置中的启动端口未生效,其实就是配置文件没读取到。这哥们儿是nacos 1.4.5 Linux系统下的相同问题,shell 中有个bug,改了就好。原版前面和那哥们一样,多了个 “option:”,
原创
发布博客 2023.10.10 ·
1471 阅读 ·
3 点赞 ·
2 评论 ·
4 收藏

java数据结构,第八篇:二叉搜素树

左子节点要小于当前节点右子节点要大于当前节点。
原创
发布博客 2023.09.12 ·
161 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

java算法系列,第十五篇:二叉树深度(&广度)优先遍历

这个后序遍历稍微麻烦一点,因为探索完右子树还要找回去的路,所以不能直接把父节点在回去的过程中给弹出了,得先查看它还有没有右子树,如果没有,那直接弹出没关系,如果有,那就先探索完右子树再回来看一下,如果当前节点的右子树已经确认被弹出了,再弹出当前节点;中序就是先遍历完了左子树,没有节点了,再从栈弹出左子树,父节点;前序就先输出父节点,然后把父节点压入栈,再去探索左节点,什么时候没有节点了,探索右节点。当然,这里的LinkedListStack类是我自己写的一个实现栈的类,前面。是指父节点的输出顺序。
原创
发布博客 2023.09.02 ·
574 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

java数据结构系列,第七篇:堆

堆”是一种特殊的二叉树,分为大顶堆:堆顶元素为最大值,子节点小于父节点;小顶堆:堆顶元素为最小值,子节点小于父节点。同时堆是一种完全二叉树,一定要·左右两个子节点都有了才能在子节点上插入子节点。这里的get和set方法我用lombok去构建了,isMaxHeap变量用于标识要创建大顶堆还是小顶堆,默认是个大顶堆。
原创
发布博客 2023.09.01 ·
120 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

java数据结构系列,第六篇:面向多线程-阻塞队列

假设只能放两个元素,offer线程三个,全堵在这里,poll也有三个,前两个poll 解了前两个offer的围,这时元素空了,还有一个offer赌在这里,还有一个poll要去唤醒它,但是队列空了呀,poll自己也堵住了,这个时候就没戏了。现在我们改用级联唤醒,当后面还有元素可以添加时,让offer唤醒阻塞的offer,同样当还有元素可以删除时,让poll唤醒阻塞的poll。NO,NO,NO,虽然解决了前面的问题,但是又引发了新的问题,那就是线程死锁。实现的线程锁功能太过单调,不够灵活,这里不使用这种方式。
原创
发布博客 2023.08.30 ·
53 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

java数据结构系列,第五篇:优先级队列

元素的处理顺序不是严格按照它们被添加到队列的顺序,而是根据元素的优先级来确定的,优先级高的元素会在队列中被优先处理。poll的话由于需要删除掉元素,为了方便,把堆顶元素也就是优先级最大的元素放到堆的末尾,其实就是数组的后面,然后把那个位置置为null,最后下潜调整一下堆的结构。至于堆这种数据结构,它通常是一个特殊类型的二叉树,其中父节点的值总是大于等于(最大堆)或小于等于(最小堆)其子节点的值。peek方法直接从最大堆的堆顶去找就ok了,最大堆的堆顶永远是最大优先级的,因为offer中给它这么排列了。
原创
发布博客 2023.08.30 ·
178 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

java数据结构系列,第四篇:双端队列

双端队列(Double-ended queue,简称Deque)是一种数据结构,允许在队列的两端进行插入和删除操作。它可以被看作是一个允许元素插入和删除的线性表,但与普通队列不同,双端队列支持在队列的头部和尾部进行插入和删除操作,因此具有更加灵活的使用方式。双端队列在很多算法和数据结构问题中都有广泛的应用,因为它的灵活性使得它可以同时满足栈和队列的需求。这使得双端队列可以像栈一样用于一些问题,比如实现逆序计算或其他需要后进先出(LIFO)操作的场景。这使得双端队列保持了队列的性质,即先进先出(FIFO)。
原创
发布博客 2023.08.22 ·
672 阅读 ·
0 点赞 ·
1 评论 ·
3 收藏

java算法系列,第十四篇:栈的应用(括号配对,逆波兰表达式(后缀表达式),中缀转后缀)

逆波兰表达式(Reverse Polish Notation,RPN),也称为后缀表达式,是一种数学和计算机科学中的表达式表示方法。在逆波兰表达式中,操作符位于操作数的后面,这种表示方法可以消除括号,使运算顺序更加清晰。更复杂的表达式也可以用逆波兰表达式表示,如 "(5 + 2) * 3" 可以表示为 "5 2 + 3 *"。逆波兰表达式在计算器、编程语言的解释器以及某些计算机科学应用中被广泛使用,因为它提供了一种直观且不需要解析括号的方式来表示和计算算术表达式。,判断字符串是否有效。
原创
发布博客 2023.08.20 ·
368 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

java数据结构系列,第三篇:栈

栈(Stack)是一种线性数据结构,它遵循“后进先出”(Last In First Out,LIFO)的原则。这意味着最后进入栈的元素将首先被移除,而最先进入栈的元素将被保留在栈的底部。栈可以使用数组或链表来实现。在编程中,栈的应用能够帮助处理各种问题,特别是需要按照特定顺序管理数据时。栈在计算机科学中有广泛的应用,如函数调用、表达式求值、内存管理、回溯算法等。再用数组来实现,数组的话将最后一个元素作为栈顶。以下是栈的实现方式。
原创
发布博客 2023.08.19 ·
76 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

java数据结构系列,第二篇:简单的二叉树实现方式

二叉树(Binary Tree)是一种常见的树状数据结构,其中每个节点最多有两个子节点。这两个子节点被称为左子节点和右子节点。每个节点都包含一个值和可能为空的指向其子节点的链接。下面是创建一个二叉树对象,并且按层打印节点值。
原创
发布博客 2023.08.19 ·
76 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

java数据结构系列,第一篇:队列

简单来说,队列就像是排队等候服务的人群,最先到达的人将首先接受服务,而后到达的人则需要等待前面的人完成服务后才能接受服务。int 是不是有个长度限制,最大支持到2147483647,超出会变成负数,而head,tail 会一直自增,但是数组索引只支持int 类型,且必须为正数,所以我们要处理一下,不然超出范围就不行了。而一个2的n次方 - 1 的数作为除数,那它的余数在二进制上,就等于 被除数 & 除数。然后加一,就是扩容后的容量的那个2的次方,保证了其始终为2的n次方。采用二进制运算 ‘按位与’:‘&’
原创
发布博客 2023.08.19 ·
151 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

java算法系列,第十三篇:弗洛伊德龟兔算法----判断一个链表是否有回环

它基于两个指针,一个称为“龟”(tortoise)指针,另一个称为“兔”(hare)指针。算法的核心思想是,如果链表中存在回环,那么龟兔指针最终会在某一点相遇。在计算机科学中,一个链表可以被描述为一系列节点,每个节点包含数据和指向下一个节点的引用。当一个链表中的某个节点的引用指向之前的某个节点,就会形成一个回环。换句话说,链表的末尾节点连接到了链表中的某个前面节点,导致链表成环。这是因为,当龟兔指针进入回环部分后,它们的相对速度就像是在一个环形跑道上,兔指针的速度是龟指针的两倍。
原创
发布博客 2023.08.16 ·
103 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

java算法系列,第十二篇,判断回文链表

由于第一种方式走了三次循环,所以它的时间复杂度不理想,现在采用 ’找中间节点的同时将前半段反转‘ 的方式来减少一个循环。使用快慢指针法找中间节点,让p1一次走一步,p2一次走两步,等p2走完了,p1刚好走了一半,这样就找到中间节点了。[1,2,2,1] 倒过来仍然是[1,2,2,1],啊,“上山西去运煤,煤运去西山上” 就是这个感觉。* 步骤1:找中间节点的同时将前半段反转。* 步骤2:比较前半段的反转与后半段。* 步骤2:将中间节点后半段反转。步骤2:将中间节点后半段反转。* 步骤1:找中间节点。
原创
发布博客 2023.08.16 ·
131 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

java算法系列,第十一篇:合并有序链表

这个就先用递归先合并成两个链表,然后再调用上面的合并两个链表的方法去合并就行了。这种方式的话就不需要另外再新创建一个新链表,直接拿原来节点去组合。要求合并成一个新的有序列表:[1,2,3,4,8,9]以上两种方法都是合并两个有序链表,如果是多个呢?
原创
发布博客 2023.08.16 ·
359 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

java算法第十篇,有序链表去重

递归思路就是拿第一个节点跟后面的一个比较,如果相等,跳过第一个节点,返回从第二个节点开始去重后的所有节点,通过递归调用的方式往后面比下去,如果两个节点的值不相等,那就给从第二个开始的后面的节点去重,最后返回头节点。就是让p1一开始指向头节点,p2指向它的下一个节点,然后去比较,如果p1=p2就让p1指向p2的下一个节点,然后更新一下p2,只要p2不为空,就一直往下面循环比下去。现在有这么一个链表[1,1,2,3,4,5,5,5],要求你去去重,最后得到[1,2,3,4,5]
原创
发布博客 2023.08.13 ·
139 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

java算法系列,第九篇:删除链表的倒数第n个节点

给你一个链表[1,2,3,4,5],现在要你删除倒数第2个节点,怎么办?这个其实是力扣上面的一道题目。
原创
发布博客 2023.08.11 ·
264 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

java算法系列第八篇,链表:通过值删除所有匹配的节点

【代码】通过值删除所有匹配的节点。
原创
发布博客 2023.08.10 ·
74 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

反转链表(4):一个链表模拟两个链表

在介绍反转链表(2)时,我们创建了一个容器类并封装了add和remove 方法来实现在使用原来节点的情况下实现反转。
原创
发布博客 2023.08.10 ·
70 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

java算法系列,第七篇:反转单向链表(1)

reverseList方法用于构建一个新的链表,让最后一个节点的值等于传进来的第一个第一个链表的第一个节点的值(ListNode node1=new ListNode(1,node2);这里的node1就是第一个链表的第一个节点),然后下一个节点指向已经创建好的下一个节点,当然,下一个节点的初始值为null,因为最后一个节点的后面没有没有节点了。,请你将这个链表反转,并返回反转后的链表的头节点。依次往复,直到第一个链表的最后一个节点。问题描述:给定一个单链表的头节点。用于构建一个1-5的链表。
原创
发布博客 2023.08.08 ·
63 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多