自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 收藏
  • 关注

原创 算法通关村之堆结构(实战训练)经典问题:理解堆的构造、插入、删除过程,查找数组中第K大的元素、堆排序、合并K个有序链表

一般都是删除堆顶元素,将堆顶元素与二叉树最后一个元素对调,删除堆顶元素后,再依次调整每一层的各子树。:确认插入位置能够保持原二叉树为完全二叉树,再自底向上调整,保证每一层的子树都符合堆结构。堆满后,只有比堆顶元素小的元素,才可以插入堆中;新插入的元素先覆盖堆顶元素后,再调整。:堆是一种数据结构,按照完全二叉树的存储顺序,将数据存储在一个一维数组中。:按照层次将所有元素一次添入二叉树中,再不断调整,最终使其符合堆结构。将数组序列依次插入堆中,每插入一个元素,就调整堆使之符合堆的结构。全部序列入堆完毕后,

2023-10-01 11:50:15 254

原创 算法通关村之字符串(实战训练)经典问题:反转字符串中的单词、验证回文串、字符串里的第一个唯一字符、判断字符串是否互为重排

就是将其中一个字符串中的字符顺序打乱重新排列后,能否成为另一个字符串。定义一个 Map 集合,我们遍历一遍字符串,使用 Map 记录每个字符出现过的次数。再次比较字符出现次数,只有每个字符出现的次数都一样,才能算两字符串互为字符重排。再使用双指针相向遍历新字符串,遍历的的过程中,判断两指针指向元素是否相同。首先要做的就是遍历一遍字符串,把所有的字母都放到新的字符串中。再次遍历该 Map,取到第一个出现次数大于1的元素。分别统计两个字符串中,各个字符出现的次数。将字符串按空格分开,转换为数组/集合。

2023-10-01 11:47:39 239

原创 算法通关村之字符串(实战训练)经典问题:转换小写字母、字符串反转、K个一组反转、仅反转字母

创建一个新的字符串对象,再次遍历该字符串:如果是非字母,将该字符放入新字符串;如果是字母,则从存入弹出的栈顶元素。如果是非字母,则将该字符放入新字符串;如果是字母,则移动后指针,找到字母,将该字母存入新的字符串。定义两个指针,一个从头向后遍历,一个从后向前,维护字母字符。使用双指针,一个在前,一个在后,相向移动,遍历字符串。遍历该字符串,依次转换为小写,存入新的字符串中。在遍历的过程中,将两指针指向的元素交换位置。创建一个新的字符串对象,前指针遍历字符串。遍整个字符串,将字母依次压入栈中。

2023-10-01 11:45:24 272

原创 算法通关村之快速排序(基础知识 + 实战训练):简单的快速排序、查找数组第K大数、归并排序

接下来,我们对key的左右区间进行单趟排序,可以预见的是,每次排序都固定好了一个数。在一个无序数组中取一个数key,每一趟排序的最终目的是:让key的左边的所有数小于key,key的右边都大于key(假设排升序)ast每走一步判断一下它指向的元素是否小于key,若小于则交换fast和slow位置的元素,并且让slow向前走。归并排序简单来讲,就是将大的序列视为若干小的数组,利用归并思想实现排序的方法。试想一下,每一轮快排结束之后,我们能知晓基准值的位置,即我们知晓基准值的下标。否则,对右侧进行递归快排。

2023-10-01 11:42:31 196

原创 算法通关村第六关- 二分查找和搜索树(基础知识)

直到到达数组左边界,或者 nums[mid] 不等于 target 为止。找到指定元素 target 后,继续向左查找,mid--,了解顺序查找、以及二分查找的简单实现。上面提到的二分查找是最常用的。返回 nums[mid++]

2023-10-01 11:35:27 81

原创 算法通关村第五关-二叉树遍历(深度优先)之经典问题: 递归/迭代实现二叉树前、中、后序遍历

前序遍历和中序遍历的代码不复杂,还是注意:挺不好理解的,不要钻牛角尖,那么我们接下来看下后序遍历。你当然可以尝试去理解,也不是很难想明白,但是不要钻牛角尖了,递归这玩意儿,很不友好。前序遍历的顺序是:中、左、右,我们简单该两个参数,实现遍历顺序为中、右、左。再将遍历结果reserve反转,不就得到左、右、中的遍历顺序了吗?理解递归思想:调用自己、压栈、明确终止条件。我的建议是直接把代码背下来。

2023-10-01 11:31:15 700 1

原创 算法通关村第五关-二叉树遍历(层数优先)之经典问题: 锯齿形层序遍历、N叉数层序遍历、获取每一层的最大值/平均数、获取二叉树右视图

在基本的层序遍历的基础上,如何实现锯齿形层序遍历?这里暂时没看懂为什么加了个 queue,日后解答。锯齿形遍历:3 9 8 20 11 6。这样的思路能否完成呢:其他条件不变,,因为它可以提供了不同的入队方式。(2023/09/10午)统计每一层出队的最后一个节点即可。

2023-10-01 11:28:39 362 3

原创 算法通关村第五关-二叉树遍历(层数优先)之经典问题:简单的层序遍历、层序遍历分层、自底向上的层序遍历

层序遍历我们做到了,这里添加一个要求:对层序遍历的节点值分层处理,即二叉树每层的节点值分别存放进一个链表 list 中。重复以上操作,每个节点出对后,都存储该节点值到 list 中,再依次将左右孩子节点入队,直到队列 queue为空。给你一个二叉树根节点,你需要创建一个队列 queue 来遍历节点,一个链表 list 来存储节点的数据域,即值。我们之前层序遍历时,每出队一个节点,都把其值存入 list 链表中,然后入队其孩子节点。在开始出队某一层的节点时,此时队列的节点数,就是二叉树这一层的节点数。

2023-10-01 11:25:56 368 2

原创 算法通关村第四关 - 白银挑战:经典问题之括号匹配问题、最大栈、最小栈、理解栈的特点:先进后出

先入栈1、出栈1,要出栈4,必然是2 3 4依次入栈了,出栈4之后的出栈顺序只能是3 2,而不可能是2 3,故错误。如果该字符s不是key值,即不是左括号,则Stack出栈,计算value值是否与s相等。先出栈2,必然是1已经入栈了,再入栈3、出栈3,入栈4、出栈4,最后出栈1,没有问题。构建两个栈,一个栈存放入栈元素,另一个栈存放栈顶元素对应的此时栈中最小的元素。给你一个栈,依次入栈1 2 3 4,请问以下出栈顺序可能出现吗?依次遍历字符串中的字符s,如果存在Map中的key值与s相等,则入栈。

2023-09-13 00:22:19 35

原创 算法通关村第四关 - 白银挑战:经典问题之用栈实现队列、用队列实现栈、两数之和、三数之和

而当你想要pop操作时,将除队列A中最后一个元素外的所有元素从队列A出队并依次入队到队列B中,再将队列A中剩下的最后一个元素出队。当你想要pop一个元素时,先将队列A中的元素依次出队并入队到队列B中,直到队列A中只剩下一个元素,然后将这个元素出队。用两个队列实现栈可以这样做:假设你有队列A和队列B,每次push一个元素,都放入队列A中。需要注意的是,每次pop操作后,需要交换队列A和队列B的角色,以便下一次的操作。这样,可以保持栈的后进先出的特性,并且实现了用两个队列来模拟栈的功能。情景:使用栈实现队列。

2023-09-13 00:19:47 58

原创 算法通关村第四关 - 栈、队列和Hash:栈的实现

Hash,又称散列,将任意长度的输入,通过散列算法,转换为固定长度的输出。empty():判断栈是否为空。认识栈这个数据结构:先进先出。peek():弹出栈顶元素。push(E e):入栈。碰撞处理(Hash冲突)再哈希法(布隆过滤)

2023-09-13 00:16:50 70

原创 从零开始构建分布式服务架构:用Dubbo和注册中心实现远程调用、服务注册与发现、配置管理

欢迎阅读本篇博客!在当前大规模分布式系统的开发中,构建可靠的服务架构是至关重要的一环。为了实现远程方法调用、服务注册与发现以及配置管理等功能,使用Dubbo和注册中心(ZooKeeper、Nacos)成为了主流选择本文将带领您一步步搭建一个强大的分布式服务架构,通过深入探索Dubbo和注册中心的使用方式,帮助您轻松实现高效的远程调用和服务管理。我们将详尽介绍如何安装、配置和集成Nacos和ZooKeeper作为注册中心,并结合Dubbo框架搭建完整的微服务架构。

2023-09-10 23:39:47 132

原创 SpringBoot快速整合Redis

Bean// 1.创建RedisTemplate对象// 2.设置连接工厂// 3.设置Key的序列化// 4.创建JSON序列化工具// 5.设置value的序列化。

2023-08-15 23:19:19 27

原创 快速生成Swagger + Knif4j接口文档

【代码】快速生成Swagger + Knif4j接口文档。

2023-08-15 23:15:59 148

原创 算法通关村第三关-白银挑战:双指针解决删除重复元素、删除指定元素、数组元素奇偶移动问题

快慢双指针的思路与上面如出一辙,无非是:快指针寻找的元素不再是与慢指针重复的元素,而是指定元素。如果左指针找到了指定元素,就拿右指针所指元素覆盖,左指针向前移动,右指针向后移动。,则慢指针:先记录快指针指向的值,然后向前移动,快指针继续向前移动。这时,将两指针所指元素交换,右指针向前一步。如果快指针所指元素,与此时慢指针所指元素。如果快指针所指元素,与此时慢指针所指元素。快指针在前,慢指针在后,快指针向前移动。左指针在左,右指针在右,左指针向前移动。),则慢指针等待,快指针继续向前移动。

2023-08-15 23:10:59 66

原创 算法通关村第三关-青铜挑战:单调数组问题、简单的二分查找和数组合并问题

我们讨论单调数组的合并:两单调数组合并之后,结果仍然是单调数组。新数组:创建一个新数组,依次比较两数组元素大小,存放。数组单调有两种情况:单调递增、单调递减。

2023-08-15 23:07:44 34

原创 算法通关村第三关-青铜挑战:数组元素的插入、删除、查找

数组的基本操作:数组的创建和初始化元素查询插入元素删除元素。

2023-08-15 23:04:38 75

原创 宝塔安装配置MySQL

宝塔面板安装MySQL是很简单的:在软件商店挑选安装对应版本的MySQL即可

2023-08-10 09:44:45 2155

原创 宝塔面板登录失败

这是七月初出现的宝塔面板登录问题,如下,登录界面一直在转圈圈

2023-08-10 09:42:11 314

原创 问题解决:访问Nginx报403错误

问题解决:访问Nginx报403错误

2023-08-03 23:36:39 557

原创 SpringBoot:配置属性映射成员变量/实体类

【代码】SpringBoot:配置属性映射成员变量/实体类。

2023-08-03 23:31:16 464

原创 深度解析Web开发中的跨域问题

跨域指的是在浏览器中,当一个网页(或者Web应用)尝试访问不同域名、不同端口或不同协议的资源时,浏览器会限制该行为,防止潜在的安全风险。跨域问题是由浏览器的同源策略(Same-Origin Policy)所引起的。

2023-08-02 13:17:48 134

原创 博客搭建 - 打造专属个人博客站点

Hexo是一个静态博客站点生成工具,可以把Markdown格式的文档转换成静态页面,非常适合用来作个人技术博客

2023-08-02 13:02:12 57

原创 宝塔面板使用经验 - 宝塔面板终端无法自动认证

宝塔面板终端无法自动认证,请填写本地服务器的登录信息!

2023-08-02 12:47:46 1203

原创 宝塔面板使用经验 - 宝塔面板登陆失败问题

宝塔面板登陆失败问题-登录宝塔面板时一直在转圈圈

2023-08-02 12:44:28 1238

原创 一次性解决Git远程推送报错问题

一次性解决Git远程推送报错问题,解决git推送代码时的常见报错和解决办法

2023-08-02 12:37:58 255

原创 算法通关村第二关-链表经典问题:两两交换链表中的节点、链表相加、单链表加一

算法通关村第二关-链表经典问题:两两交换链表中的节点、链表相加、单链表加一

2023-08-02 12:31:50 121

原创 算法通关村第二关-链表经典问题:反转链表

常见的链表反转的方法:虚拟头节点、直接反转、递归。

2023-08-02 12:28:12 83

原创 解决启动SpringBoot项目报错:Unsatisfied dependency expressed through field ‘baseMapper‘.....问题

解决启动SpringBoot项目报错:Unsatisfied dependency expressed through field 'baseMapper'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException:

2023-08-01 18:42:12 14955 6

原创 算法通关村第二关-链表经典问题:反转区间链表

【代码】算法通关村第二关-链表经典问题:反转区间链表。

2023-07-31 12:59:27 103

原创 绑定密钥对导致SSH服务异常

权限设置为0777,意味着所有者、所有者所属组和其他用户都具有读取(第一个7)、写入(第二个7)和执行(第三个7)的权限。这是一种非常宽松的权限设置,可能会带来安全风险,因为任何人都可以访问和修改该文件或目录。600权限是一种相对严格的权限设置,它可以用于限制对文件的访问权限。具体权限设置为600表示只有文件的所有者拥有读取和写入的权限,而所有者所属组和其他用户没有任何权限。

2023-07-27 22:57:31 630 1

原创 算法通关村-第一关通关挑战

【代码】算法通关村-第一关通关挑战。

2023-07-27 10:24:13 42 1

原创 git 远程推送报错

大白话讲,就是允许本地代码比远程代码多一部分, 即远程仓库有的代码,本地仓库必须有;远程仓库没有的,本地仓库也可以有。git remote add origin 【远程仓库地址】

2023-07-23 16:11:00 383

原创 算法通关村第一关-双指针专题:寻找中间节点、寻找倒数第K个节点、旋转链表

*** 寻找中间节点* @return*/// 1.快慢指针// 2.快指针指向尾节点= null) {// 3.返回中间节点。

2023-07-22 22:57:17 40

原创 算法通关村第一关-链表经典问题:查找公共节点、回文链表判断、合并链表

*** 方法1:全部压栈遍历 全部出栈遍历* @return*/// 1.压栈 遍历= null) {// 2.出栈 遍历= null) {/*** 方法2:全部压栈遍历 一半出栈遍历* @return*///链表的长度//把链表节点的值存放到栈中= null) {len++;//len长度除以2len >>= 1;//然后再出栈。

2023-07-19 20:58:14 79

原创 算法通关村第一关-链表经典问题:查找两链表的第一个公共节点

从两链表的头节点/尾节点开始,分别依次向后遍历链表的每个节点,再比较两节点,判断它们是否相同,即是否为两链表的公共节点。哈希和集合:直接消除了链表长度带来的影响,通过开辟了新的空间,判断节点是否相等,进而查找出两链表的公共节点。只需要根据正序/倒序遍历链表,选出第一组公共节点/最后一组公共节点,就找到了两链表的第一个公共节点。栈、两链表拼接、差和双指针:本质上都是构造出两链表长度相同的环境,进而查找出两链表的公共节点。我们上面查找两链表公共节点的思路,其实只有在两链表长度相同时,才行得通。

2023-07-18 22:51:31 92 1

原创 算法通关村第一关-链表青铜挑战笔记

链表,是用来存储数据的一种数据结构,其由若干个节点依次连接而成。一个节点就是一个数据元素,一个节点由两部分构成:数据域和指针域。数据域存放数据元素的值,指针域存放指针,而该指针用来指向下一个节点。

2023-07-17 18:43:47 490 1

原创 Node.js的常用命令

快速掌握Node.js的常用命令

2023-07-11 18:25:47 463 1

原创 从IP到Ping命令:了解计算机网络连接的基础

在当今的信息世界中,IP(Internet Protocol)扮演着至关重要的角色。在这篇博客中,我们将深入探讨IP的概念,并重点介绍公网IP和内网IP的区别及其在网络通信中的作用。

2023-07-11 18:21:31 731 1

原创 Node.js的安装配置

Node.js的安装配置,快速掌握Node.js的环境变量配置

2023-07-06 22:45:10 33 1

空空如也

空空如也

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

TA关注的人

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