自定义博客皮肤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)
  • 收藏
  • 关注

原创 连接mysql问题: 在修改了数据库root账户的密码后 远程连接提示密码错误的问题

set password for root @localhost = password('root');使用此语句修改密码后 会出现密码+-----------+---------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+-------+------------------+--------------+-

2021-04-21 23:29:28 799

原创 LeetCode5 最长回文子串

最长回文子串给你一个字符串 s,找到 s 中最长的回文子串。暴力解法 /** * 暴力解法 * @param s * @return */ public static String longestPalindrome(String s) { if (s.length()<2){ return s; } char[] chars = s.toCharArray();

2021-03-19 16:41:45 85

原创 LeetCode63 不同路径 II

63. 不同路径 II一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?解依旧是一道简单的冻龟题可以先看 不同路径 的解题思路此题在其基础上仅仅是初态的设置不同以及把障碍物所在的格子的路径数变为0就好了 public static int uniquePathsWithObsta

2021-03-19 16:39:12 103

原创 LeetCode62 不同路径

62. 不同路径一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?解简单的动态规划题f(m,n) = f(m-1,n) + f(m,n-1)其中但m=0和当n=0时 路径条数为1public static int uniquePaths(int m, int n) { int[][] arr = new

2021-03-18 17:17:44 75

原创 LeetCode42 接雨水

42. 接雨水给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。解法思路解法一先创建两个预数组一个存当前指针左边最大值 一个存当前指针右边最大值然后计算每格上面的水分public static int maxArea(int[] height) { // 每一个上面都是取 MIN(左边最大,右边最大) - 自己 负数取0 // 创建左最大数组 和 右最大数组 int[] left = new i

2021-03-18 00:56:28 38

原创 LeetCode36 有效的数独

36. 有效的数独判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。上图是一个部分填充的有效的数独。数独部分空格内已填入了数字,空白格用 ‘.’ 表示。解:版本一先上一个晦气版本 哈哈 public boolean isValidSudoku(char[][] board) { char

2021-03-17 17:28:03 61

原创 美团笔试题 淘汰分数

美团笔试题 淘汰分数某比赛已经进入了淘汰赛阶段,已知共有n名选手参与了此阶段比赛,他们的得分分别是a_1,a_2….a_n,小美作为比赛的裁判希望设定一个分数线m,使得所有分数大于m的选手晋级,其他人淘汰。但是为了保护粉丝脆弱的心脏,小美希望晋级和淘汰的人数均在[x,y]之间。显然这个m有可能是不存在的,也有可能存在多个m,如果不存在,请你输出-1,如果存在多个,请你输出符合条件的最低的分数线。输入描述:输入第一行仅包含三个正整数n,x,y,分别表示参赛的人数和晋级淘汰人数区间。(1<

2021-03-16 11:47:26 2228 1

原创 LeetCode70 爬楼梯

70. 爬楼梯假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。题解:该题最先想到的肯定是递归 (ps: leetcode上这样写45这个用例会超时)方法一首先我们可以知道爬一阶有1种方法爬两阶有2种方法爬三阶有以下两情况先爬一阶 剩2个阶梯先爬两阶 剩1个阶梯所以f(3) = f(2) + f(1)同理爬n阶有以下两情况先爬一阶 剩n-1个阶梯先爬两阶 剩n-2个

2021-03-15 21:55:30 61

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

34. 在排序数组中查找元素的第一个和最后一个位置给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。进阶: 你可以设计并实现时间复杂度为 O(log n) 的算法解决此问题吗?题解:这道题我写的太恶心了 我自己都看不下去了重点在getIndex方法那里 三个参数 前两个参数和searchRange一样 后面用来确定是获取开始还是结束由于该题不是直接查找目标值 而是需

2021-03-15 21:25:37 71

原创 LeetCode66 加一

题解方法一:自己第一遍想的代码可读性较差思维也没有放开class Solution { public static int[] plusOne(int[] digits) { int length = digits.length; if (digits[length - 1] < 9) { digits[length - 1] += 1; return digits; }

2021-03-15 20:50:22 67

原创 LeetCode53 最大子序和

53. 最大子序和给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。ps:这题是看题解做的 动态规划还是需要练啊 public int maxSubArray(int[] nums) { int pre =0; int res = nums[0]; for (int x : nums) { // 判断x之前的数据是否为负数 pre = Math

2021-03-15 20:45:20 40

原创 LeetCode69 x 的平方根

69. x 的平方根实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。需要注意的点显然这道题最容易想到的方法就是二分法但由于存在 判断需要用到 平方所以我们必须处理类型溢出的问题方法就是在平方的时候转换为long类型 public static int mySqrt(int x) { // 考虑采用 二分法 int low = 0;

2021-03-15 20:42:46 56

原创 LeetCode29 两数相除

29. 两数相除给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。返回被除数 dividend 除以除数 divisor 得到的商。整数除法的结果应当截去(truncate)其小数部分,例如:truncate(8.345) = 8 以及 truncate(-2.7335) = -2解题思路我只能说 要考虑类型溢出的题是真的噩梦 每次都要错几回没什么好说的思路 就是用除数每次 *2 一直到结果大于被除数 然后再用 (被除数

2021-03-14 23:08:39 44

原创 LeetCode33 搜索旋转排序数组

33. 搜索旋转排序数组整数数组 nums 按升序排列,数组中的值 互不相同 。在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k+1], …, nums[n-1], nums[0], nums[1], …, nums[k-1]](下标 从 0 开始 计数)。例如, [0,1,2,4,5,6,7] 在下标 3 处经旋转后可能变为 [4,5,6,7,0,1,2] 。给你 旋转后 的数组

2021-03-14 22:02:53 114

原创 LeetCode22 括号生成

22. 括号生成数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。 public static List<String> generateParenthesis(int n) { List<String> brackets = new ArrayList<>(); getBrackets(n,n,"",brackets); return brackets; }

2021-03-13 21:40:19 61

原创 LeetCode21 合并两个有序链表

21. 合并两个有序链表将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。/** * 普通解法 * @param l1 * @param l2 * @return */ public ListNode mergeTwoLists(ListNode l1, ListNode l2) { ListNode headPre = new ListNode(); if (l1 =

2021-03-13 20:50:27 56

原创 LeetCode19 删除链表的倒数第 N 个结点

19. 删除链表的倒数第 N 个结点给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。进阶:你能尝试使用一趟扫描实现吗?解法快慢指针 public ListNode removeNthFromEnd(ListNode head, int n) { if (head == null){ return null; } ListNode fast = head; ListNode slow =

2021-03-10 10:15:01 45

原创 LeetCode14. 最长公共前缀

14. 最长公共前缀编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。解题重点最长公共前缀一定不会比最短字符串长 所以我们可以找到最短的字符串(只需要长度 不需要字符串)写一个方法来判断一个字符串是不是公共前缀 时间复杂度 O(m*n) m:字符串总长度 n:字符串个数我们只需要在最短的字符串里进行二分查找 一直匹配到不再是公共前缀 public static String longestCommonPrefix(String[] strs

2021-03-09 21:05:19 54

原创 LeetCode172 阶乘后的零

172. 阶乘后的零给定一个整数 n,返回 n! 结果尾数中零的数量。解法参考题解的 思路无敌 膜拜大佬本题核心问题在于求出乘数中5的个数5 10 15这些比较简单 n/5 就能获得但像25 50 75 125 这些 会包含多个5该解法用递归来解决此问题 public static int trailingZeroes(int n) { return n<5?0:n/5 + trailingZeroes(n/5); }...

2021-03-09 13:11:03 44

原创 LeetCode15 三数之和

15. 三数之和给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。解题思想 :要求不重复 首先想到寻找特殊值来确定 如最小值/最大值不同 则不同, 所以我们把数组排序由于数组从小到大 所以我们确定一个最小值 然后用双指针来确定其他两个值 L = minIndex+1 R = length-1为了结果不重复 我们在移动指针的时候还要考虑重复

2021-03-06 16:21:58 47

原创 LeetCode20 有效的括号

20. 有效的括号给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。/** * 问题: 没有考虑到先出现反括号的情况 * 没有考虑到全是正括号的现象 */ public static boolean isValid(String s) { if (s.length() %2 != 0){ return

2021-02-26 22:43:20 47

原创 LeetCode11 盛最多水的容器

盛最多水的容器题目给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器。输入:[1,8,6,2,5,4,8,3,7]输出:49解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。解法思路用左

2021-02-24 22:37:41 43

原创 ES6新特性及语法

ES6新特性及语法let和const解构表达式字符串拓展方法新特性对象优化let和const//1. let不可以越域 // { // let b = 2; // var a= 1; // } // console.log(a); // console.log(b);// 2. let不能多次声明变量 // var a = 1; // var a = 2;

2021-01-26 15:46:23 281

原创 剑指 Offer 07. 重建二叉树 - 力扣(LeetCode)

重建二叉树解法一:时间空间复杂度双高应该是因为使用了Arrays.copyOfRange()函数导致的新思路 不传入数组 改为传入数组下标 ===>解法二public static TreeNode buildTree(int[] preorder, int[] inorder) { //如果数组中没有节点 直接返回null if (preorder.length==0) return null; TreeNode treeNode = new TreeNode

2021-01-22 22:10:27 60

原创 剑指 Offer 06. 从尾到头打印链表 - 力扣(LeetCode)

从尾到头打印链表输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。思路:用栈用递归实现类似于栈的效果//定义ListNodeclass ListNode { int val; ListNode next; ListNode(int x) { val = x; }}public class PrintRevList { int [] a; int i = 0; public int[] rever

2021-01-21 11:39:54 54

原创 剑指 Offer 04. 二维数组中的查找 - 力扣(LeetCode)

二维数组中的查找在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。public boolean findNumberIn2DArray(int[][] matrix, int target) { if (matrix.length == 0 || matrix[0].length == 0) { return false; }

2021-01-21 11:34:31 83

原创 Explain关键字

Explain关键字文章目录Explain关键字能干嘛名称解释id三种情况select_typetabletypepossible_keys & key覆盖索引(Covering Index),也说为索引覆盖key_lenrefrowsExtra能干嘛表的加载顺序数据读取操作的数据类型哪些索引可以使用哪些索引被实际使用表之间的引用每张表有多少行被优化器查询名称解释idselect查询的序列号,包含一组数字,表示查询中执行select子句或操作表的顺序三种情况id相

2021-01-20 11:27:49 60

原创 Mysql索引

索引及Sql执行顺序文章目录索引及Sql执行顺序Sql执行顺序Sql变慢的原因删除不使用delete而使用标志位update的原因索引是什么优势劣势主流索引对比索引创建创建索引的情景不应创建索引的情景索引优化Join语句优化单表优化双表优化索引失效likeorder bygroup byexists一般性建议Sql执行顺序<!--执行顺序-->FROM <left_table>;ON <join_condition><join_type>JOIN

2021-01-20 11:27:08 55

原创 Redis基础

Redis基础Redis支持的键值数据类型(1) String:字符串类型(2) hash:散列类型(3) list:列表类型(4) set:集合类型(5) zset:有序集合类型注意:Redis的key永远都是string,数据类型指的是value的类型。默认一共是16个数据库,每个数据库之间是相互隔离。数据库的数量是在redis.conf中配置的一个数据最大的存储量是512M 数值的最大范围:Long.MAX_VALUERedis通用命令命令作用sel

2021-01-20 11:26:35 39

原创 B-树 和 B+树

B-树 和 B+树文章目录B-树 和 B+树B-树B-树是什么B-树的查找B-树的插入如何变形B-树的删除如何变形有分支无分支B+树B-树B-树是什么每个结点最多有m个分支(子树);而最少分支数要看是否为根结点,如果是根结点且不是叶子结点则至少有2个分支,非根非叶结点至少有⌈m/2⌉个分支。(向上取整 e.g. 5/2=3)有n(k≤n≤m)个分支的结点有n-1个关键字,它们按递增顺序排列。k=2(根结点)或⌈m/2⌉(非根结点)。结点内各关键字互不相等。叶结点处于同一层;可

2021-01-20 11:13:07 100

原创 SpringMVC流程

#mermaid-svg-zeBSQ4HRYwmpREk2 .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-zeBSQ4HRYwmpREk2 .label text{fill:#333}#mermaid-svg-zeBSQ4HRYwmpREk2 .node rect,#mermaid-svg-zeBSQ4HRYw

2021-01-20 11:11:14 40

原创 Nginx

NginxNginx是什么Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx优点占有内存少 并发能力强 能支持高达50000个并发链接数支持热部署 几乎可以7*24小时不间断运行反向代理正向代理在客户端(浏览器)配置代理服务器 通过代理服务器进行互联网访问反向代理我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端此时反向代理服务器和目标服务

2021-01-20 10:30:01 65 1

原创 thymeleaf基本使用

引入thymeleaf <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>语法规则

2021-01-20 10:29:07 56

原创 Ajax传值

$.ajax({ url:"../regionservlet",//数据请求的地址 data:{"paid":-1},//返回给客户端的json数据 dataType:"json",//s数据类型格式 type:"post",//ajax数据访问的方法 success:function(listReceive){ $("#province").empty(); ...

2021-01-20 10:27:55 129

原创 Layui报错

layer弹出之后raido失效的问题layui 在非根目录下加载模块路径出错问题index页面goodsList页面解决 && 存疑在使用layui加载模块枪先配置layui.js位置不过我在没有加路径之前也能加载到layui.js 但是一引进模块就报错...

2021-01-20 10:27:19 253 1

原创 Mysql的锁

共享锁和排它锁shared lock 和 exclusive lock (共享锁和排它锁,也叫读锁和写锁,即read lock和write lock锁类型当前session其他session读锁可读不可写 不可读其他的表可读写阻塞写锁可读可写 不可读其他的表读写阻塞-- 加锁lock table [table_name] write/read-- 解锁unlock tables读锁是共享的,或者说是相互不阻塞的写锁是排他的,一个写锁会阻塞其他的写

2021-01-20 10:26:12 57

原创 Springboot详解

文章目录yml配置格式yml配置格式#修改服务器端口server: port: 1123#配置数据源spring: datasource: username: root password: 123456 url: jdbc:mysql://localhost:3306/crud?useUnicode=true&serverTimezone=UTC&characterEncoding=utf8 driver-class-name: com.m

2021-01-19 11:40:07 64

原创 关于post请求报错

400400错误是因为前端提交的到后台的数据应该是json字符串类型而前端没有将对象转化为字符串类型;400解决方法:<head> <script type="text/javascript"> function regist(){ $.ajax({ url:"/", <!--使用JSON.stringify(param)来转换json-->

2021-01-19 10:34:02 942

原创 类加载器

文章目录类加载器类加载器种类虚拟机自带的加载器用户自定义加载器双亲委派机制类加载器负责加载class文件,class文件在文件开头有特定的文件标示(cafe babe),将class文件字节码内容加载到内存中,并将这些内容转换成方法区中的运行时数据结构并且ClassLoader只负责class文件的加载,至于它是否可以运行,则由Execution Engine决定类加载器种类虚拟机自带的加载器启动类加载器(Bootstrap)C++ :java类加载器中最顶层的类加载器,负责加载jdk

2021-01-19 10:30:43 34

原创 垃圾收集器

文章目录垃圾收集器Serial收集器(用于新生代)ParNew收集器(新生代)Parallel Scavenge收集器(“吞吐量优先”收集器)(新生代)Serial Old收集器(老年代)Parallel Old收集器(老年代)CMS收集器(Concurrent Mark Sweep)G1收集器(Garbage First)垃圾收集器如果说收集算法是内存回收的方法论,垃圾收集器就是内存回收的具体实现。下图展示了7种不同分代的收集器,如果两个收集器之间存在连线,就说明他们可以搭配使用。并没有最好的收集器

2021-01-19 10:25:34 48

空空如也

空空如也

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

TA关注的人

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