- 博客(26)
- 收藏
- 关注
原创 【力扣】219. 存在重复元素 II
给你一个整数数组 nums 和一个整数 k ,判断数组中是否存在两个 不同的索引 i 和 j ,满足 nums[i] == nums[j] 且 abs(i - j) <= k。否则,返回 false。暴力解法,使用两层for循环遍历所有元素,判断num[i]==num[j] && Math.abs(i-j)<=k。输入:nums = [1,2,3,1,2,3], k = 2。输入:nums = [1,2,3,1], k = 3。输入:nums = [1,0,1,1], k = 1。
2025-01-24 21:48:33
407
原创 【力扣】76. 最小覆盖子串
使用滑动窗口,定义两个指针:head,tail分别表示窗口的两端,定义一个Map用来存储 t 字符串中所有的字符数量,用于判断是否符合覆盖条件,再定义一个Map用来存储当前窗口包含的字符数量,尾指针循环遍历字符串s,扩大窗口的大小,然后再判断是否已经符合覆盖t字符串的条件,如果满足条件,则后移头指针,缩小窗口大小,直到不满足覆盖t字符串条件,尾指针继续遍历,扩大窗口。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 “”。输入:s = “a”, t = “a”s 和 t 由英文字母组成。
2025-01-20 22:10:53
379
原创 【力扣】904.水果成篮
尾指针循环遍历水果数组,遇到水果则将水果放入花篮(map),当花篮(map)满了以后,则头指针左移,并且减少花篮中对应水果的数量,直到其中一个花篮水果清空以后,尾指针继续右移,添加新的水果。输入:fruits = [3,3,3,1,2,1,1,2,3,3,4]解释:可以采摘 [1,2,1,1,2] 这五棵树。输入:fruits = [1,2,3,2,2]解释:可以采摘 [2,3,2,2] 这四棵树。输入:fruits = [0,1,2,2]解释:可以采摘 [1,2,2] 这三棵树。
2025-01-16 18:48:01
377
原创 【力扣】209.长度最小的子数组
使用双指针,一个头(head)一个尾(tail)表示窗口的范围,通过尾指针右移遍历数组,头尾指针之间的元素表示的就是当前正在判断的连续子数组,当子数组的总和符合条件以后,记录下当前长度,然后再通过头指针(head)右移,去掉元素,继续向右滑动,直到遍历完所有的元素。[numsl, numsl+1, …输入:target = 11, nums = [1,1,1,1,1,1,1,1]输入:target = 7, nums = [2,3,1,2,4,3]输入:target = 4, nums = [1,4,4]
2025-01-15 14:18:37
126
原创 【力扣】977.有序数组的平方
给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。解释:平方后,数组变为 [16,1,0,9,100]输入:nums = [-4,-1,0,3,10]输入:nums = [-7,-3,2,3,11]请你设计时间复杂度为 O(n) 的算法解决本问题。排序后,数组变为 [0,1,9,16,100]输出:[0,1,9,16,100]输出:[4,9,9,49,121]nums 已按 非递减顺序 排序。
2025-01-13 22:56:15
162
原创 力扣-27.移除元素
目标值时,nums[slow]赋值为nums[fast],慢指针(slow)往后移,快指针(fast)继续便利下一个值,直到处理完数组中所有的元素。解释:你的函数应该返回 k = 5,并且 nums 中的前五个元素为 0,0,1,3,4。解释:你的函数函数应该返回 k = 2, 并且 nums 中的前两个元素均为 2。输入:nums = [0,1,2,2,3,0,4,2], val = 2。输入:nums = [3,2,2,3], val = 3。输出:5, nums = [0,1,4,0,3,
2025-01-13 14:04:02
297
原创 力扣-704.二分查找
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。输入: nums = [-1,0,3,5,9,12], target = 9。输入: nums = [-1,0,3,5,9,12], target = 2。nums 的每个元素都将在 [-9999, 9999]之间。解释: 9 出现在 nums 中并且下标为 4。解释: 2 不存在 nums 中因此返回 -1。
2024-12-24 15:04:29
184
原创 常见排序算法02--冒泡排序
核心思想重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素已经排序完成。排序流程将序列当中的左右元素,依次比较,若果左边元素比右边元素大,则交换,保证右边的元素始终大于左边的元素;( 第一轮结束后,序列最后一个元素一定是当前序列的最大值;)对序列当中剩下的...
2020-03-07 23:26:30
165
原创 常见排序算法01--直接插入排序
核心思想将数组中的所有元素依次跟前面已经排好的元素相比较,如果选择的元素比已排序的元素小,则交换,直到全部元素都比较过。排序流程因此,直接插入排序可以用两个循环完成:第一层循环:遍历待比较的所有数组元素;第二层循环:将本轮选择的元素依次与该元素前面已经排好序的元素相比较,如果选择的元素大于前一位元素则交换;举例说明排序数组 [16,12ᴬ,14,7,12ᴮ,8] (注:12ᴬ与12ᴮ...
2020-03-05 00:47:13
154
原创 配置MySQL允许远程连接
默认情况下,MySQL只允许本地登录,如果要开启远程连接,需要修改/etc/mysql/my.conf文件。一、修改/etc/mysql/my.confbind-address = 127.0.0.1 #改为bind-address = 0.0.0.0二、为需要远程登录的用户赋予权限1、新建用户远程连接mysql数据库grant all on . to admin@’%’ iden...
2020-03-02 00:11:03
299
原创 Java中线程池
线程池的优点:1、降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。2、提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。3、提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。获取线程池的三个方法: //创建一个定长线程池,可控制线程最大并发数,超出的...
2020-02-22 16:35:00
218
原创 Spring boot websocket项目打包时报错
Spring boot 开发中,在使用了WebSocket的项目时,运行没有任何错误,但是打包的时候报一下错误。在此记录解决方案。Caused by: java.lang.IllegalStateException: javax.websocket.server.ServerContainer not available at org.springframework.util.Assert.s...
2019-12-27 21:11:04
427
原创 java-方法的参数传递机制
java-方法的参数传递机制1.先看以下代码/** * java-方法的参数传递机制 * * @author chenyi * Create on 2019/10/16 */public class Exam { public static void main(String[] args) { int i = 1; String str =...
2019-12-27 21:03:47
161
原创 spring boot 配置允许跨域
简单概述什么是跨域跨域是指一个域下的文档或脚本试图去请求另一个域下的资源,这里跨域是广义的。其实我们通常所说的跨域是狭义的,是由浏览器同源策略限制的一类请求场景。浏览器从一个域名的网页去请求另一个域名的资源时,域名、端口、协议任一不同,都是跨域。跨域的访问会带来许多安全性的问题,比如,cookie 一般用于状态控制,常用于存储登录的信息,如果允许跨域访问,那么别的网站只需要一段脚本就可以获取你的...
2019-12-26 21:04:45
209
原创 spring boot 配置拦截器
一、定义拦截器定义拦截器,需要实现 HandlerInterceptor 接口。HandlerInterceptor 接口是 Spring Boot 提供的拦截器的父类。该接口中有三个方法。preHandle、postHandle、afterCompletion。preHandle:某个 URL 匹配到对应的 Controller 中的某个方法,且在这个方法执行之前。该方法可以决定是否将请求...
2019-12-26 20:54:45
112
原创 @JsonSerialize注解
@JsonSerialize此注解用于属性或者getter方法上,用于在序列化时嵌入开发者自定义的代码。较常用的是对Double、Float类型进行保留小数操作、Date日期类型格式化score分数保留两位有效数字/** * @author chenyi * Create on 2019/9/10 */@Data@ToStringpublic class Score { ...
2019-12-26 16:45:43
3470
原创 封装接口数据返回结果集
在前后端完全分离的项目当中,为了方便与前端人员的数据交互,定义返回结果集,封装数据、状态码、错误信息。定义接口状态码枚举类/** * 接口处理状态code和description 枚举 */public enum ResponseCode { ERROR(500, "ERROR"),//错误,服务器出BUG SUCCESS(200, "SUCCESS"),//请求成功 ...
2019-12-26 16:23:48
1276
原创 二叉树遍历
二叉树遍历可以使用深度优先遍历和广度优先遍历,深度优先又可以分为前序、中序、后序三种方式遍历,每种方式都可以通过递归和非递归方法实现。一、深度优先递归遍历:前序遍历算法:先遍历根结点再递归遍历左子树最后递归遍历右子树首先访问根结点A;遍历A结点的左子树,B结点。B结点有子结点,再按照前序遍历方式遍历,先访问根结点,即B;遍历B结点左子树,D结点;D结点没有子结点,遍历B结点...
2019-12-18 19:12:16
111
原创 Spring data MongoDB PageRequest 方法弃用
如:Pageable pageable =new PageRequest(page, size, sort);点进PageRequest方法,可以看到 已经加了@Deprecated…/** @deprecated */@Deprecatedpublic PageRequest(int page, int size, Sort sort) {super(page, size);th...
2019-12-05 08:42:03
262
原创 MySQL索引
一、什么是索引MySQL官方对索引的定义为:索引是帮助MYSQL高效获取数据的数据结构。其本质是数据结构。可以简单理解为“排好序的快速查找数据结构”:在数据之外,数据库系统还维护这满足特定查找算法的数据结构,这些数据结构以某种方式指向数据。...
2019-12-04 21:55:57
319
原创 ArrayList线程不安全-笔记
List list = new ArrayList();实际上底层new了一个Object类型的数组。数组的初始大小为10,当list的大小超过10的时候会进行扩容,扩容大小为原值的一半。拷贝的方法用的Arrays.copyOf(araryNew, araryNew.length)方法。ArrayList在多线程下不安全。会出现java.util.ConcurrentModificationn...
2019-12-03 08:42:43
354
原创 Nginx相关知识收纳总结
1、什么是Nginx?Nginx一款高性能HTTP服务器和反向代理服务器;也是一个IMAP、POP3、SMTP代理服务器;Nginx的设计不像传统的服务器那样使用线程处理请求,而是一个更加高级的机制—事件驱动机制,是一种异步事件驱动结构。2、Nginx的一些特性(1) 跨平台:可以在大多数Unix like 系统编译运行。而且也有Windows的移植版本;(2) 配置异常简单:非常的简单,...
2019-11-26 19:53:10
265
原创 Spring boot 集成mina框架
一、Apache mina框架是什么?https://baike.baidu.com/item/Apache%20MINA\二、如何集成并使用mina框架1.引入pom依赖 <dependency> <groupId>org.apache.mina</groupId> <artifact...
2019-11-11 22:12:14
2997
原创 Springboot使用WebSocket无法注入service的解决方法
因为websocket需要开一个自己的线程,如果采用注解的话就是把它当做一个普通的组件放在容器里,调用的时候会一直在spring的线程里,而不是自己独立的线程。所以无法注入service.解决方法:spring-boot启动类@SpringBootApplication@MapperScan("com.hiramgames.dao")public class Hiramgames...
2019-11-11 15:14:26
1512
原创 Spring boot全局异常统一处理@RestControllerAdvice
@RestControllerAdvice注解定义全局处理异常类,可以返回JSON格式提示信息1、使用方法import com.zytech.mobile.common.ServerResponse;import org.springframework.web.HttpRequestMethodNotSupportedException;import org.springframework...
2019-11-11 15:03:25
426
原创 使用Spring AOP、自定义注解实现对Request传参拦截
使用Spring boot开发项目与前端人员对接接口时由于在调试,经常传来null、undefined、NaN等非法参数,于是利用spring 的自定义注解以及AOP实现简单的传入参数拦截。一、使用方法 /** * 登录 * 当参数是实体类时,通过 参数名.属性名 的方式注解参数 */ @CheckParam(params = {"user.stuN...
2019-11-11 14:43:24
2186
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人