自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 innodb和myisam的区别

innodbmyisam事务支持不支持数据锁行级锁表级锁读写性能增删更优查询更优全文索引不支持默认支持外键支持不支持存储结构在磁盘存储一个文件在磁盘存储三个文件(表定义,数据,索引)存储空间需要更多的内存和存储支持三种不同的存储格式:静态表(默认),动态表,压缩表崩溃恢复机制有没有数据存储结构B+树B+树

2023-04-01 16:14:17 138 1

原创 34.在排序数组中查找元素的第一个和最后一个位置

题目描述:给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。进阶:你可以设计并实现时间复杂度为 O(log n) 的算法解决此问题吗?...

2022-01-26 21:49:06 845

原创 31.下一个排列--力扣题解

题目描述:实现获取 下一个排列 的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列(即,组合出下一个更大的整数)。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须 原地 修改,只允许使用额外常数空间。方法一:从数组后面开始遍历,找到第一个不是降序的元素nums[i],再用一个循环,遍历 i 之后的元素,找到比 nums[i] 大的元素 nums[j] ,交换nums[i] 和 nums[j] ,然后再倒序交换 nums[i] 之后的元素即可class

2022-01-26 11:44:17 339

原创 15.三数之和--力扣题解

题目描述:给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。

2022-01-26 10:12:02 487

原创 1688.比赛中的配对次数--力扣题解

题目描述:给你一个整数 n ,表示比赛中的队伍数。比赛遵循一种独特的赛制:如果当前队伍数是 偶数 ,那么每支队伍都会与另一支队伍配对。总共进行 n / 2 场比赛,且产生 n / 2 支队伍进入下一轮。如果当前队伍数为 奇数 ,那么将会随机轮空并晋级一支队伍,其余的队伍配对。总共进行 (n - 1) / 2 场比赛,且产生 (n - 1) / 2 + 1 支队伍进入下一轮。返回在比赛中进行的配对次数,直到决出获胜队伍为止。方法一:把n分奇偶讨论public int numberOfMatch

2022-01-25 11:42:29 76

原创 JVM内存管理--笔记

Java代码是如何运行起来的?Java文件->编译器->字节码->JVM->机器码Java程序,先经过Javac编译成.class文件,如何JVM将其加载到‘元数据’区,执行引擎通过混合模式执行这些字节码,执行时,会翻译成操作系统相关的函数,JVM作为.class文件的黑盒存在,输入字节码,调用操作系统函数JVM内存管理JVM内存区域划分(运行时数据区)JVM堆中的数据是共享的,这是占用内存最大的一块区域执行引擎:可以执行字节码的模块执行引擎在线程切换时如何恢复–

2022-01-24 23:11:24 474

原创 11.盛最多水的容器--力扣题解

题目描述:给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器。方法一:暴力法,两个for循环,但是这种方法会超时class Solution { public int maxArea(int[] height) { int max=0;

2022-01-24 13:49:59 355

原创 53.最大子数组和--力扣题解

题目描述:给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组 是数组中的一个连续部分。方法一:动态规划我想到的第一个思路是动态规划这个方向,一开始想到的是maxSub = Math.max(f(n-1)+x,f(n-1)),但是这样的话,需要每次重新设定起始点,看了题解后,发现可以改成下面形式,核心的这一行是preMax=Math.max(preMax+nums[i],nums[i]);,意思是,如果前面累加的结果还不如num[i]

2022-01-24 12:22:28 58

原创 169.多数元素--力扣题解

题目描述:给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。方法一:先排序。由于多数元素的出现次数>⌊ n/2 ⌋,所以排完序之后,数组中间的元素必定是多数元素此处我使用了堆排序 class Solution { public int majorityElement(int[] nums) { heapSort(nums); return

2022-01-24 10:12:42 101

原创 448.找到所有数组中消失的数字--力扣题解

题目描述:给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1, n] 内。请你找出所有在 [1, n] 范围内但没有出现在 nums 中的数字,并以数组的形式返回结果。方法一:这是我想到的第一个思路先排序,再遍历数组,由于元素区间为[1,n],排序后,遍历数组可以找到在区间[1,n]内,数组不存在的元素,此处排序使用了快排算法class Solution { public List<Integer> findDisappearedNumbers(in

2022-01-23 17:58:58 126 1

原创 283. 移动零--力扣题解

题目描述:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序方法一:思路:先遍历一次数组,计算数组中0的个数再次遍历数组,把非零元素放到前面,然后把数组后面的元素用0填充class Solution { public void moveZeroes(int[] nums) { int count = 0; for (int i=0;i< nums.length;i++){ i

2022-01-23 16:29:26 381

原创 136.只出现一次的数字--力扣题解

题目描述:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?方法一:先排序,再遍历排序后的数组,即可找出只出现了一次的元素但是这是方法的时间复杂度无法达到线性方法二:由于要求要达到线性的时间复杂度,而且不能使用额外的空间,可以考虑位运算异或运算:交换律:a ^ b ^ c <=> a ^ c ^ b任何数于0异或为任何数 0 ^ n =>

2022-01-23 15:47:12 51

原创 121买卖股票的最好时机--力扣题解

题目描述:给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。方法一:暴力法这是我想到的第一个思路使用两个for循环,遍历数组的每一个元素,对于元素 i ,再依次遍历该元素后面的每一个元素,找出最大差值class Solution { pub

2022-01-22 23:06:10 676

原创 1030. 距离顺序排列矩阵单元格--力扣题解

题目描述:方法一:我的思路:画图可知,需要输出的二维数组的顺序如下:(1,2,3为输出的顺序)主要是要分析边界问题class Solution { public int[][] allCellsDistOrder(int rows, int cols, int rCenter, int cCenter) { int[][] result = new int[rows*cols][]; result[0] =new int[] {rCenter,cCent

2022-01-17 23:40:45 275

原创 面试题 10.01. 合并排序的数组--力扣题解

题目描述:方法一:我的思路:先判断是升序还是降序假如是升序:利用两个指针a和b,分别指向数组A和数组B,从数组A的后端开始插入元素,指针a和b分别逐个遍历数组A和数组B,把较大的元素插入到数组A的后端class Solution { public void merge(int[] A, int m, int[] B, int n) { if (m==0){ for (int i=0;i<n;i++){ A[

2022-01-17 23:31:43 80

原创 1160. 拼写单词--力扣题解

题目描述:给你一份『词汇表』(字符串数组) words 和一张『字母表』(字符串) chars。假如你可以用 chars 中的『字母』(字符)拼写出 words 中的某个『单词』(字符串),那么我们就认为你掌握了这个单词。注意:每次拼写(指拼写词汇表中的一个单词)时,chars 中的每个字母都只能用一次。返回词汇表 words 中你掌握的所有单词的 长度之和。方法一:我的思路:把words中的每一个字符串拿出来,转换成字符数组,查看每一个字符是否存在于chars中,如果存在,则在chars中

2022-01-17 23:21:53 146

原创 27. 移除元素--力扣题解

题目描述:给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。方法一:我的思路:由于需要原地修改数组,并且数组的顺序可以改变返回值为count,也就是该数组移除掉特定元素 val 的长度遍历数组,当元素 nums[i] == val 时,把数组后面的元素移到 nums[i] 的位置,并且

2022-01-17 23:11:42 79

原创 wordpress更新下载插件需要ftp

因为之前的博客丢失,所以忘了怎么解决了qwq网上很多解决方法都是给777权限,但是不安全先运行Ps -ef 查看php-fpm对应的进程账号,如wwwchown -R www wordpress目录

2022-01-12 23:29:32 181 1

原创 wordpress发布博客访问页面404

第一次使用wordpress发布博客,访问页面结果404我是因为地址的问题到wordpress “个人设置”那里,有一个固定链接,选择“朴素型”,就可以访问成功

2022-01-12 23:28:28 91

原创 html右边或下边有留白

问题:html页面右边或者底部总有一部分空白区域,需要拉动滚动条才能看到在知乎看到的一个很有用的方法(来自知乎的“表酱紫”大佬)控制台运行:[].forEach.call($$("*"),function(a){a.style.outline="1px solid #"+(~~(Math.random()*(1<<24))).toString(16)})可以查看是哪些元素溢出了...

2022-01-12 23:25:41 778

原创 ==和equals()

==:如果作用于基本数据类型的变量,则直接比较其存储的值是否相等如果作用域引用类型的变量,则比较所指向的对象的地址equals():equals()不能作用于基本数据类型的变量Object类中,equals方法用来比较指向的字符串对象所存储的字符串是否相等其他类,比如Double,Date,Integer等,对equals方法进行了重写,用来比较所指向的对象所存储的值的内容是否相等 String a = "abc"; String b = "abc";

2022-01-12 23:24:31 94

原创 StringBuilder,StringBuffer,String

| 运行速度:StringBuilder>StringBuffer>StringString是字符串常量,不可变,而StringBuilder和StringBuffer是字符串变量,可以更改适用情况String:适用于少量字符串操作的情况StringBuilder:适用于单线程下在字符缓冲区进行大量操作的情况StringBuffer:适用多线程下在字符缓冲区进行大量操作的情况线程安全:StringBuilder线程不安全String,StringBuffer线程安全

2022-01-12 23:23:41 177

原创 string split()

string Object.split(separator,howmany)作用:把一个字符串a分割成字符串数组值得注意的是:String aa = "";System.out.println(aa.split(",").length);输出的结果是:1因为当字符串a是“”时,会把它当作一个长度为1的字符串放到数组的第一个元素中,所以长度为1String aa = "aa";System.out.println(aa.split(",").length);输出的结果为:1因为aa字

2022-01-12 23:22:34 135

原创 linxu端口映射

Halo的默认端口是8090,在web端访问时总是要带上端口,很不方便,可以通过以下方法,将8090映射到80端口iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8090设置完之后,要重启nginxcd /usr/local/nginx/sbin./nginx -s reload...

2022-01-12 23:22:03 1088

原创 IDEA打包maven项目,并部署到云服务器

点击右侧“maven”的Lifecycle点击package进行打包(如果之前打包过,但是修改了项目,可以先点击clean,再点击package进行打包)在项目目录的target目录下找到war包用SSH工具把war传输到云服务器在云服务器中,将war包放到tomcat的webapps目录下,即可以在网页中访问项目注意:比如,项目war包名为:a.var云服务器的ip地址为:111.222.333.444则访问项目的路径为:111.222.333.444:端口/a..

2022-01-12 23:20:40 958

原创 tomcat配置域名访问

进入tomcat的conf目录中,修改server.xml文件找到下面这个标签,修改defaultHost的值为你的域名<Engine name="Catalina" defaultHost="localhost">比如:我的域名是naitang21.cc,则修改成:<Engine name="Catalina" defaultHost="naitang21.cc">找到下面这个标签,修改name为你的域名<Host name="localhost" a

2022-01-12 23:19:47 924

原创 启动nginx失败,80端口被占用

查看占用80端口的进程netstat -ntlp|grep 80杀死进程kill 端口号启动nginxcd /usr/local/nginx/sbin./nginx

2022-01-12 23:18:29 1207

原创 剑指offer22.链表中倒数第k个节点--力扣题解

题目输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点。方法一,设置两个指针设置两个指针p1,p2,让p1先走 k-1 步,然后p1和p2同时往后移动,当p1到达了最后一个节点,此时,p2所在节点,就是倒数第k个节点public ListNode getKthFromEnd(ListNode hea

2021-10-30 11:05:58 88

原创 26删除有序数组中的重复项--力扣题解

题目给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。分析当数组nums为空(长度为0)时,直接返回0length是要返回的值,即新数组的长度,也就是不含重复元素的范围的长度因为nums数组的第一个元素,一定不重复,因此可以从nums[1]开始遍历数组当元素 i 和元素 i-1 相同时,说明元素重复,此时不作操作,继续遍历当元素i

2021-10-29 23:46:32 58

原创 有效的括号--力扣题解

题目给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。...

2021-10-29 22:53:42 70

原创 两数之和--力扣题解

题目给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。方法一,枚举用两个for循环,遍历数组的每一个元素,对于元素i,遍历元素i之后的元素,看是否存在target-i元素,如果存在,则输出分析这是我想到的第一种方法,用到了两个for循环,如果数组有n个元素,其时间复杂度为O(n2),空间复杂

2021-10-29 15:46:26 61

原创 判断一个数是否为2的整数次幂

《小灰的算法之旅》学习笔记题目判断一个正整数是否为2的整数次幂,如果是,则返回true,否则,返回false方法一:穷举法步骤创建一个中间变量temp,初始值为1,然后进入一个循环,每次循环都让temp乘以2,并和该整数相比较如果不相等,则让temp*2;如果temp>目标整数,则说明目标整数不是2的整数次幂;如果相等,则说明目标整数是2的整数次幂分析如果目标整数的大小为n,则此方法的时间复杂度为O(logn)public boolean exhaustively(int num

2021-10-28 19:46:53 2557

原创 判断整数奇偶性

一:模2求余public void judgeParity(int num){ if (num%2==0) System.out.println("偶数"); else System.out.println("奇数"); }二:移位运算public void judgeParity(int num){ if ((num & 1)==0) System.out.pri

2021-10-28 08:00:00 232

原创 Ambiguous mapping. Cannot map ‘XXXXController‘ method

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping': Invocation of init method failed; nested exception is java.lang.IllegalStateExcepti

2021-10-27 17:10:35 463

原创 求最大公约数

文章目录题目:一 :辗转相除法二: 更相减损术三:在更相减损术的基础上使用移位运算《小灰的算法之旅》学习笔记题目:求两个整数的最大公约数解决方法一 :辗转相除法定理:两个正整数a和b(a>b),它们的最大公约数等于a除以b的余数c和b之间的最大公约数步骤:根据以上定理,不断把两个较大的整数之间的运算,简化成两个较小整数之间的运算,直到两个数可以整除,或其中一个数减小到1为止分析:当两个整数较大时,a%b取模运算的性能会比较差,时间复杂度可近似为O(log(max(a,b)))举

2021-10-27 14:34:02 74

原创 最小栈的实现

《小灰的算法之旅》学习笔记题目:实现一个栈,该栈带有出栈(pop),入栈(push),取最小元素(getMin)3个方法,要保证这3个方法的事件复杂度都是O(1)解决方法:设原有的栈为A,新建一个辅助栈B当第1个元素进入栈A时,让新元素也进入栈B,此时,这个唯一的元素就是栈A的最小值之后,当新元素进入栈A时,比较新元素和栈A当前最小值的大小,如果小于栈A当前最小值,则让新元素也进入栈B每当栈A有元素出栈时,若出栈元素是栈A当前最小值,则让栈B的栈顶元素出栈,此时,栈B余下的栈顶元素所指向的,

2021-10-27 11:11:44 96

原创 判断链表有环

《小灰的算法之旅》学习笔记题目: 有一个单向链表,链表中可能有“环”一: 如何判断该链表是否有环?解决方法:首先,创建两个指针p1,p2,让它们同时指向该链表的头节点开始循环,让p1每次向后移动1个节点,p2每次向后移动2个节点,比较两个指针指向的节点是否相同,如果相同,则可以判断链表有环,如果不同,则继续循环分析: 假设链表的节点数量为n,则该方法的时间复杂度为O(n),空间复杂度为O(1)代码:public boolean ifListHasRing(ListNode head){

2021-10-27 10:55:57 543

原创 Nginx启动成功,浏览器无法访问页面

查看nginx进程ps -ef | grep nginx显示启动成功然后查看8端口是否被分配给了Nginx 执行:netstat -ntlp可以看到是正常再配置下防火墙firewall-cmd --zone=public --add-port=80/tcp --permanent重启防火墙systemctl restart firewalld.service...

2021-10-21 08:45:00 278

原创 Java技术体系

Java技术体系Java程序设计语言各种硬件平台上的Java虚拟机实现Class文件格式Java类库API来自商业机构和开源社区的第三方Java类库Java技术体系可以分为四条主要的产品线Java CardJava MEJava SEJava EE...

2021-10-20 10:22:20 1786

原创 Spring MVC

文章目录概述Spring快速入门SpringMVC组件解析SpringMVC的注解解析组件扫描SpringMVC的xml配置(资源解析器)概述MVC:M:modal 模型,主要用于数据封装和业务逻辑处理V:view 视图,数据展示C:constructor,控制器分发,指派工作流程图示Spring快速入门导入相关坐标配置Spring的前端控制器创建Controller类和视图页面,并使用注解配置映射地址注意:视图页面放在webapp下配置SpringMVC核心文件

2021-09-07 14:22:33 52

空空如也

空空如也

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

TA关注的人

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