自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 深度优先搜索(dfs),宽度优先搜索(bfs),深度优先遍历,宽度优先遍历

DFS,BFS,树与图的深度优先遍历,树与图的广度优先遍历,树的重心,八数码,走迷宫,n皇后,全排列经典例题。

2022-07-09 11:26:15 2148

原创 广度优先搜索(BFS)(队列实现) 走迷宫

BFS应用:寻找最短路径或者遍历路径。(树,图或者更抽象的...)实现方法:队列为什么bfs需要队列实现? 队列的原理是先进先出,而广度优先搜索类似于树的层次遍历,从离根节点最近的点开始向外扩散,因此用队列将最先遍历的点存入,后遍历的点后存入,符合bfs的逻辑。经典例题:走迷宫学习中遇到的几个问题:1,如何表示迷宫走的方向?——通过向量表示,dx,dy一一对应; 分别是四个方向:向上/下/左/右;2, 如何确保最后返回的一定是最短路径?———因为bfs是广度优先搜索,一定是从最近的点开始向外扩散,在b

2022-06-25 01:02:39 4098 3

原创 什么是面向对象?

这样的好处就在于,隐藏了内部实现细节,提高安全性,对外提供公共访问方法,提高代码复用性。封装的意义就在于,隐藏了实现细节,对外的调用者来说是透明的,调用者无需知道内部实现方式,只需要知道这个方法是干什么的就好了。继承主要用途就是将子类中共有的方法抽取到父类中,比如说共有的属性和方法,更大的提高的代码复用程度。继承的好处:1,想要使用这些属性和方法的时候,直接调用父类的即可,无需再重新定义,更大程度的提高了代码的复用性。2,无需再写很多冗余代码,如果需要个性化定义子类方法,在子类中去重写父类方法即可。

2024-04-28 12:08:06 372

原创 Vue3父传子获取值为data中的值赋值

【代码】Vue3父传子获取值为data中的值赋值。

2024-04-09 09:13:51 181

原创 Vue3中父组件向子组件、子组件向父组件、兄弟组件传值

注:props只可从上一级组件传到下一级组件(父子组件),即单向数据流。方法一:A组件------------------>父组件------------------>B组件。在子组件上监听emit定义的事件名称并绑定自身的函数,在函数参数中接收子组件传递的参数。父组件中引用子组件,并在子组件标签中添加子组件props中创建的属性。(子组件传父组件) (父组件传子组件)子组件中创建一个属性,用来接收父组件传过来的值。最后将需要传给子组件的值赋给该属性。假设我们从A组件中将值传给B组件。

2024-04-08 19:09:58 428

原创 Vue3中对v-md-editor编辑器的集成使用

在main.js中进行全局配置。

2024-04-08 16:39:31 519

原创 后端上传文件使用阿里云oss存储文件(图片)

前端向后端传文件,后端Controller层接收。3,读取配置文件application.yml中的配置。2,application.yml配置。1,pom.xml安装依赖。4,Service层接口。

2024-04-07 15:06:51 305

原创 电话号码的字母组合(LeetCode17题)

主要思想就是一条路走到黑,回溯时记得恢复现场。

2024-04-04 13:37:38 77

原创 Vue3配置Axios

1,创建index.js文件。2,main.js全局挂载。

2024-03-31 23:59:40 172

原创 自动装箱 自动拆箱

由此可以判断 如果是使用new那么每次都会返回false。因此使用的是Integer中的valueOf。使用数组缓存,如果要转换的数在-128到127之间,直接返回对象,否则创建一个新的对象。底层隐式调用了intValue()方法。基本类型转换为包装类型。包装类型转换为基本类型。

2024-03-24 10:26:22 217 1

原创 Java中数组和List的互相转换

【代码】Java中数组和List的互相转换。

2024-03-14 18:11:46 439 1

原创 平衡二叉树

2,中序遍历:按左,根,右方式遍历(二分搜索树的特点:从小到大依次输出)1,当前节点的值大于左节点的值,小于右节点的值。2,除过叶子节点 其余非叶子节点都有左右孩子。3,后序遍历:按左,右,根方式遍历。4,先序遍历:按根,左,右方式遍历。注:存储元素的值必须具有可比性。2,每一棵子树也是二分搜索树。1,叶子节点在最后一层。

2024-03-09 13:12:20 167

原创 vue处理Element-UI中message重复跳出的情况

utils包中新建 optimizePop.js文件。main.js中导入。

2024-02-29 11:48:37 506

原创 MySQL高级

非聚簇索引:索引的存储和数据的存储是分离的,也就是说找到了索引但没找到数据,需 要根据索引上的值(主键)再次回表查询,非聚簇索引。支持事务、行级锁(并发量大)、外键约束,容量大、支持索引、支持缓存、支持主键自增、不支持存储表的总行数,需要sql逐行统计。聚簇索引:找到了索引就找到了需要的数据,那么这个索引就是聚簇索引,所以 innodb 中的主键就是聚簇索引(一级索引)。不支持行锁、只有表锁(并发小),不支持外键,支持全文检索,MYSIAM存储了表的总行数,统计速度快。排序、分组使用的列。

2024-01-27 14:39:34 915

原创 JAVASE进阶(设计模式、设计原则)

Override - 检查该方法是否是重写方法。如果发现其父类,或者是引用的接口中并没有该方法时,会报编译错误。@Deprecated - 标记过时方法。如果使用该方法,会报编译警告。@SuppressWarnings - 指示编译器去忽略注解中声明的警告。@FunctionalInterface 用于指示被修饰的接口是函数式接口。克隆分为浅克隆、深克隆。

2024-01-22 15:07:31 1046

原创 线程进阶(以解决线程安全问题为主)、volatile的底层实现

当一个变量被声明为 volatile 时,线程在写入变量时不会把值缓存在寄存器或者其他地方,而是会把值刷新回主内存。当其他线程读取该共享变量时,会从主内存重新获取最新值,而不是使用当前线程的工作内存中的值。volatile 的内存语义和synchronized有相似之处,具体来说就是,当线程写入了 volatile变量值时就等价于线程退出synchronized同步块(把写入工作内存的变量值同步到主内存),读取 volatile 变量值时就相当于进入同步块(先清空本地内存变量值,再从主内存获取最新值)。

2024-01-18 21:40:39 979

原创 线程、线程创建、多线程、线程同步

线程和进程的关系:一个进程可以包含多个线程,线程必须属于某一进程,不能独立存在。一个进程中的所有线程共享该进程中的所有资源。同步锁/对象要求:多个线程必须访问到的是同一个对象,对象用来记录有没有线程进入到同步代码块中。2)多个线程可以共享同一个接口实现类的对象,非常适合多个相同线程来处。实现Runnable:线程代码存在接口的子类的run方法。并行:是真正意义上的同时执行,一个时间节点多个任务同时执行。多线程:一个程序内部可以创建多个线程执行不同的任务。进程:正在执行的程序,操作系统分配资源的最小单位。

2024-01-18 13:40:06 392

原创 Redis相关问题

先删除Redis的数据,然后更新MySQL中的数据,此时Redis查询到MySQL中的老数据,等MySQL更新完成之后再查询,更新Redis中的数据。6.0版本之后是多线程的,处理客户端网络请求连接是多线程,执行读写操作是单线程,所以线程依然是安全的。但是也会存在数据不一致的问题,一个线程正在更新MySQL,事务此时还未提交,Redis查询的还是老数据。

2024-01-17 14:01:57 496

原创 Redis集群(主从复制)

是指将一台 Redis 服务器的数据,复制到其他的 Redis 服务器。前者称为主节点(master),后者称为从节点(slave),数据的复制是单向的,只能 由主节点到从节点。写入的命令直接发送到主机执行,主机会将数据自动备份到从机,实现读写分离,分担redis服务压力。pidfile /var/run/redis_6379.pid #进程号文件。pidfile /var/run/redis_6380.pid #进程号文件。从机进入客户端模式 ./redis-cli -p 从机端口。

2024-01-14 17:00:11 512

原创 Elasticsearch的基本功能和使用

简称为 ES,是一款非常强大的开源的高扩展的分布式全文 检索引擎,可以帮助我们从海量数据中快速找到需要的内容,它可以近乎实时的 存储、检索数据.还可以可以实现日志统计、分析、系统监控等功能.例如京东,淘宝,头条等站内搜索功能.ES环境搭建ES 下载地址:默认打开是最新版本 7.6.1 版下载https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.6.1-windows-x86_64.zip解压。

2024-01-14 16:33:33 1224

原创 一周中的第几天

【代码】一周中的第几天。

2023-12-30 00:16:29 418

原创 *234 open() “/opt/nginx/html/newsDetail“ failed (2: No such file or directory)错误解决方案

是一个常用于Nginx服务器配置中的指令。它用来决定如何响应特定的HTTP请求。文件,所有的路由都在这个文件中处理。通过这样的配置,即使客户端直接请求一个不存在的路径,也能正确地返回。这样的配置在很多单页应用(SPA)中很有用,因为它们通常只有一个。将前后端部署到服务器,发现可以打开首页,但是转到其他页面失败。查看了服务器的日志,后端打印了日志,前端报错。,从而让单页应用能够接管并处理这个请求。在nginx.cof配置了。然后重启,就可以访问了。

2023-12-28 15:47:40 533

原创 SpringBoot集成Swagger功能

2,过滤器放行Swagger功能。1,配置Swagger接口。

2023-12-26 16:22:31 377

原创 数学之鸡兔同笼问题

假设番茄堡x个,小皇堡y个,可以得出x,y的结果,用题目给的代替,再判断x,y是否符合题目要求,最后返回值。今天的每日一题写的很low,居然没想到鸡兔同笼,还傻傻的模拟!()我的愚蠢写法:(超时)

2023-12-25 18:56:48 464

原创 【2023下算法课设】Gray码的分治构造算法

传统的二进制系统例如数字3的表示法为011,要切换为邻近的数字4,也就是100时,装置中的三个位元都得要转换,因此于未完全转换的过程时装置会经历短暂的,010,001,101,110,111等其中数种状态,也就是代表着2、1、5、6、7,因此此种数字编码方法于邻近数字转换时有比较大的误差可能范围。例如长度为2³的格雷码为(000,001,011,010,110,111,101,100),设计分治算法对任意的n值构造相应的格雷码。十进制   格雷码 二进制。

2023-12-25 14:43:38 568

原创 SpringBoot+vue实现评论区分页效果

因为分页是SpringBoot已经封装好的,会在sql语句中自动加上limit去分页查询,加了分号springboot添加limit查询会产生语法错误。当评论区含大量数据时,一次性查询速度很慢,所以使用分页,实现分页效果。需要注意的是不要在sql语句最后加分号";javaScrip向后端传数据。不然你就会产生这样的错误。

2023-12-22 18:47:46 742

原创 js中设置cookie

【代码】js中设置cookie。

2023-12-21 15:16:15 360

原创 vue前端拦截器

注:sessionStorage和localStorage的区别,localStorage可长期保存token,即使跳转新页面也依旧存在于浏览器。

2023-12-21 00:18:04 400

原创 SpringBoot过滤器过滤未登录操作的页面

【代码】SpringBoot过滤器过滤未登录操作的页面。

2023-12-21 00:15:38 351

原创 前端验证码计时器(短信验证登录倒计时)

【代码】前端验证码计时器。

2023-12-19 01:31:12 409

原创 利用redis给邮箱发送邮件功能

【代码】利用redis给邮箱发送邮件功能。

2023-12-18 23:28:21 477

原创 关于在redis中查找键值对报java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to...的问题

返回linkedHashMap类型。它的设计使得我们可以更容易地按照插入顺序迭代元素的键值对。这样可以确保转换是安全的,并且不会导致任何意外的行为或错误。强制转换为其他对象类型时,你应该非常小心。有相同的语义和功能,并且不会破坏任何内部状态或依赖关系。转换为其他类型,最好的做法是创建一个新的对象,并手动复制。

2023-12-16 18:34:47 282

原创 200.岛屿数量(bfs写法)

宽搜的正常思路,只不过每次加上计算岛屿数量cnt即可。

2023-12-16 12:48:50 26

原创 Leetcode每日一题(分割回文串Ⅰ)

Leetcode每日一题(分割回文串Ⅰ)

2023-12-14 19:55:17 83

原创 最小体力消耗路径(广度优先搜索)

这里的注意点就是在判断边界值,找最大的最小值的时候,需要特判,再加入队列,否则队列会重复添加元素,导致超时。用动态规划做的话不能一次保证当前位置能获得最小的最大值,因为需要周围的四个(或者两个)元素值。这里我纯用的BFS,宽度优先搜索。看见这题第一眼-动态规划,再看BFS。

2023-12-11 17:32:04 44

原创 关于最长上升子序列的动态规划问题的优化算法(二分搜索)

有了上面的铺垫,我们可以创建一个数组,在每个长度范围内都会存在一个大于子序列所有元素的最大值,用其来记录长度为len的递增子序列的最大值。例如[3,1,2,4] ,在子序列长度同为1的情况下,如果选择了3,那么后面比3大的元素一定比1大,所以选1比选3有更大的机会生成一个最长递增子序列。思路:使用动态规划的思想,判断当前元素之前的所有元素,如果比当前元素小,则修改当前元素的最长递增子序列(需判断是否需要修改)。此题也是一道求最长上升子序列的问题,不过值范围较大,暴力解法会TLE。时间复杂度:O(n^2)

2023-12-07 21:56:27 80

原创 动态规划之最长子序列

如果当前数左边不存在与当前数存在定差的数,则返回默认值0+1.对每对数对下标为0的排序,遍历数对,使用动态规划记录最长数对。遍历数组,存储当前左边所有数的最大的等差数列长度。同上一题,不过没有给等差数列的差值,可以自己遍历。

2023-12-06 17:32:10 52

原创 Linux下的java环境搭建

Linux操作系统下配置JAVA环境

2023-12-05 22:24:29 252

原创 回文串+动态规划

遍历字符串,逐个判断每个字符,向两边扩散,判断以当前字符为中心,最长回文大小。动态规划的做法就是:记录已经遍历过的字符串,避免重复判断。

2023-12-04 16:48:27 49

原创 线性动态规划

初始化第一行和第一列,除了第一行第一列,其他的每个位置继承上/左的距离,选择最短的那个即可。

2023-12-02 09:20:03 273

Gray码的分治构造算法

Gray码是一个长度为2ⁿ的序列,序列中无相同元素,且每个元素都是长度为n位的二进制位串,相邻元素恰好只有1位不同。例如长度为2³的格雷码为(000,001,011,010,110,111,101,100),设计分治算法对任意的n值构造相应的格雷码。 本文旨在设计一种使用分治算法对任意的n值构造相应的格雷码的程序。首先,简要介绍了格雷码的基本概念和生成方法。然后,提出了一种基于分治思想的算法,用于生成任意长度的格雷码。在算法的具体实现上,采用了递归的思路。首先,将待生成的格雷码分为两部分,分别计算它们的格雷码,然后再将这两个格雷码合并成一个完整的格雷码。 该程序采用Java作为设计语言,采用了分治算法来实现任意长度的Gray码,代码简明清晰,易于理解。 关键词:Java;Gray码;分治算法 Gray码,又称为格雷码,是一种二进制数列的排列方式。它的特点是任意两个连续的数值只有一个位数的差异。这种特性使得Gray码在误差检测和许多工程应用中具有优势,如模拟/数字转换、轴角编码、通信等。 本课题的研究目标是探讨和理解Gray码的分治构造算法。该算法应能处理不同长度的Gray码的生成问题。

2023-12-27

空空如也

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

TA关注的人

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