- 博客(42)
- 资源 (9)
- 收藏
- 关注
原创 2938. 区分黑球与白球 - (LeetCode)
2938. 区分黑球与白球;采用传统的编程,的确可以完成大部分的编程任务,执行起来性能也没有问题。没有接触LeetCode的时候,没有这个意识,但是这段时间打卡一些题目,遇到执行超时,才意识到自己写好代码还是需要努力,这个也许是我经常坚持的原因吧。
2024-06-06 22:41:00
420
原创 128. 最长连续序列 - LeetCode 热题 100
128. 最长连续序列 - 力扣(LeetCode),中午没休息,看看热题TOP100,看到128. 最长连续序列这题,就做这题吧,开始觉得挺容易,很快做出来,提交的时候,执行到一个长的数组,就直接报超时了,越有挑战,就越想挑战,不断优化代码,最后顺利提交通过。
2024-06-02 15:40:11
283
原创 分糖果 - (LeetCode)
575. 分糖果 - 力扣(LeetCode);往往我们在编程过程中就跟着步骤解决的思路去编码实现,觉得能执行正确,就OK了,当没有考虑到数据和场景的问题,就容易变成隐藏的💣了,所以多学习数据结构和算法,能有效帮助我们提高的执行性能和解决问题的最佳方案。今天在掘金看到一句很有意思的话,所以也记下来:最好的投资就是投资自己。
2024-06-02 11:41:07
592
原创 给小朋友们分糖果 I - (LeetCode)
2928. 给小朋友们分糖果 I - 力扣(LeetCode);今天是忙碌而充实的一天,平时上班比较忙,周末终于可以美美的睡一个觉,早上醒来,天气下雨,台风偶尔呼呼的吹,简单吃了早餐,就开始给鱼缸的小鱼喂食和水草,平时都是机器自动喂,今天顺便给鱼缸吸下💩,然后换了部分水。做完一切已经中午了,然后才开始打开LeetCode进行看今天的打卡题,今天是六一儿童节,所以平台也给了一道非常有趣的题目,如下。
2024-06-01 23:12:51
414
原创 找出缺失和重复的数字 - (LeetCode)
2965. 找出缺失和重复的数字;最近工作太忙了,周一到周五,画了5天的原型设计,看着原型设计我都准备要吐的节奏,新项目很多业务不熟悉,去问同事需求,网上找资料学习业务需求,更重要的是还要构思业务流程和界面展示,产品经理在团队中还是非常重要的活,但是产品经理干一天,估计要一个团队干一个月或者一年都不定。
2024-05-31 23:40:55
588
原创 找出最具竞争力的子序列 -(LeetCode)
最近很忙,都没有时间去弄算法题,自己不在深圳这几天,虽然不是很忙,但都是碎片化的时间,碎片化的时间搞不了力扣,毕竟像我这种小白,难得今天中午没有休息,这样就来打一次LeetCode卡吧,领个10积分虽然不是目标,但是应该值得坚持。
2024-05-24 14:01:03
521
原创 找出数组游戏的赢家 - (LeetCode)
今天又遇到一题简单的算法题,题目:1535. 找出数组游戏的赢家,整个过程比较简单,开始被题目的要求有一点误导,导致对数组整体移位做了操作,导致第一次提交性能超时的问题,然后进行了优化,发现其实不需要数组移位也能达到计算和判断的效果,所以有时候不一定需要根据题目说的要求,还是需要根据自己实际的场景去改变。
2024-05-19 22:06:11
343
原创 找出可整除性得分最大的整数 - (LeetCode)
昨天非常忙,上午去做体检,下午去拿报告,晚上和老刘吃撸了一个串,深入交流生活的不易,岁月变化的快,话回算法题,今天的题目比较容易,花了一会就能写出来。今天这题是:2644. 找出可整除性得分最大的整数。
2024-05-18 22:08:58
450
原创 1953. 你可以工作的最大周数 - (LeetCode)
算法题到今天,已经连续坚持了9天了,每天一题算法题,学习数据结构和算法,还是很充实的,今天的题目是1953. 你可以工作的最大周数,直接上题目。
2024-05-16 21:54:12
475
原创 完成所有任务的最少时间 - (LeetCode)
2589. 完成所有任务的最少时间;今天也是很无精打采的一天,早上看到这道题,都有点懵逼,开始也不懂如何入手,既然自己搞不定,就顺便测试了一下AI吧,测试了通义千问和文心一言,把题目拿去那里问,可以把解题思路写出来,代码也写了,但是我拿到AI的代码来运行,发现2个平台的代码都是运行不通过的,说明AI对这种算法题,是不对的,AI测试了一轮,只好自己去理解了,看了一下AI的代码,给自己一些思路,按照自己的思路去优化代码最终通过。
2024-05-15 20:44:16
413
原创 完成所有任务需要的最少轮数 - (LeetCode)
2244. 完成所有任务需要的最少轮数 - 力扣(LeetCode)今天的题目比较简单,没花多少时间就做出来,我采用了HashMap来作为分组存储,只要key存在就往value+1,我们直接看题目。
2024-05-14 14:41:51
345
原创 腐烂的橘子 - (LeetCode)
994. 腐烂的橘子 - 力扣(LeetCode),今天刷到这道题,开始按照自己实现的思路写了一次,通过了调试,但是提交的时候,来了一个大的数据,就没有通过测试,百思不得其解,看了网上的思路,使用了java的Queue队列对象来进行解题,平时都没什么机会使用Queue队列,这次认真学习了Queue队列对象,代码优化后节省了一般的代码很多,而且优化了解题的思路。先学习下Queue队列对象。
2024-05-13 21:29:12
964
原创 收集垃圾的最少总时间- (LeetCode)
2391. 收集垃圾的最少总时间;给你一个下标从开始的字符串数组garbage,其中garbage[i]表示第i个房子的垃圾集合。garbage[i]只包含字符'M''P'和'G',但可能包含多个相同字符,每个字符分别表示一单位的金属、纸和玻璃。垃圾车收拾单位的任何一种垃圾都需要花费1分钟。同时给你一个下标从开始的整数数组travel,其中travel[i]是垃圾车从房子i行驶到房子i + 1需要的分钟数。城市里总共有三辆垃圾车
2024-05-11 23:54:54
357
原创 移除元素 - (LeetCode)
移除元素 - (LeetCode)这道题比较简单,就是需要掌握不借助新创建的数组对象进行数组的移位,不借助新数组,处理起来就需要实现数组移位的技巧掌握。
2024-05-10 21:21:24
280
原创 统计已测试设备-LeetCode
今天的LeetCode推荐的题目是“2960.统计已测试设备”,大概看了一下,难度简单,直接贴出题目和解题代码。
2024-05-10 14:48:17
280
原创 2105. 给植物浇水 II - (LeetCode)
今天LeetCode给我推送了一题“给植物浇水Ⅱ”,前天写了一题是“给植物浇水Ⅰ”,很顺利的写出来了,“给植物浇水Ⅰ”这道算法题是一个人浇水的算法,相对简单很多,“给植物浇水Ⅱ”是2个人浇水的算法题,而且二个人一个从头开始,一个从最后一颗开始,二个人刚好同一颗浇水还有条件要求,我们一起来看看下面题目
2024-05-09 21:30:33
549
原创 两数相加 - (LeetCode)
注意:万万没有想到,在LeetCode通过测试,但是提交的时候,却被一个长链表被给卡主了,查看了错误,发现是超出了long的长度,不能用传统的方法来解决,只能通过每一位数的相加,然后进位进行循环计算和进位处理。从两个链表的头节点开始,依次将对应位置的数字相加,并保留进位。在遍历完两个链表的所有节点之后,如果还存在进位,就需要在结果链表中追加一个节点来存储进位。经过思考和优化,最后优化代码如下,顺利提交LeetCode通过所有的测试用例。的链表,表示两个非负的整数。的方式存储的,并且每个节点只能存储。
2024-05-09 14:43:08
458
原创 给植物浇水(LeetCode)
你打算用一个水罐给花园里的n株植物浇水。植物排成一行,从左到右进行标记,编号从0到n - 1。其中,第i株植物的位置是x = i。x = -1处有一条河,你可以在那里重新灌满你的水罐。
2024-05-08 20:35:55
404
原创 三数之和算法题(LeetCode)
给你一个整数数组nums,判断是否存在三元组[nums[i], nums[j], nums[k]]满足i != j、i != k且j != k,同时还满足nums[i] + nums[j] + nums[k] == 0。请你返回所有和为0且不重复的三元组。
2024-05-08 13:30:04
242
原创 掌握 @Cacheable、@CachePut 和 @CacheEvict 注解
从入门到精通:掌握 @Cacheable、@CachePut 和 @CacheEvict 注解
2024-01-30 10:10:03
1710
原创 Docker部署Java项目
关于是否应该将Java项目部署在Docker中的思考。传统方式:直接在服务器上运行jar包,依赖于服务器的环境配置,可能会遇到环境不一致的问题。Docker方式:通过容器化,你的应用和所有依赖都封装在一个Docker镜像中。部署时只需要在有Docker环境的机器上运行容器即可,环境一致性得到保障。
2024-01-24 09:00:28
848
原创 分布式ID解决方案
在分布式系统中,生成全局唯一ID是非常重要的,因为在分布式系统中,多个节点同时生成ID可能会导致ID冲突。下面介绍几种常用的分布式ID解决方案。
2024-01-22 09:27:34
1244
原创 使用redis秒杀的demo
模拟了一个商品秒杀过程。首先,它检查用户是否已经秒杀过,如果秒杀成功,会减少库存并记录秒杀用户。该示例中使用了Redis的事务机制,确保在多个命令之间的原子性操作。在实际生产环境中,你需要更多的优化和安全性措施,包括用户鉴权、分布式锁、防止超卖等。实现一个秒杀系统是一个复杂的任务,需要考虑诸多因素,如并发控制、库存管理、用户鉴权等。以下是一个简单的Redis秒杀Demo,用于演示基本的秒杀流程。请注意,这个示例仅用于核心库存demo演示,实际的生产环境中需要更多的安全性和性能优化。
2023-11-23 09:39:10
119
原创 Explain命令在优化查询说明
EXPLAIN命令可以帮助我们理解 MySQL 的查询执行过程,从而进行优化。通过选择合适的索引、减少数据访问、减少排序和分组、避免隐式类型转换、减少查询次数等方法,我们可以提高查询效率,并优化数据库性能。在使用EXPLAIN命令时,我们需要关注的字段包括idtabletypekeykey_lenrefrowsExtra等。通过分析这些字段,我们可以了解查询的执行计划、数据访问方式、索引使用情况、数据过滤情况、排序和分组操作、查询次数等信息,从而进行优化。
2023-11-20 08:49:24
82
原创 Spring Boot 常用注解大全:每个程序员必备
Spring Boot 中有许多常用的注解,这些注解用于配置、管理和定义 Spring Boot 应用程序的各个方面。以下是这些注解按大类和小类的方式分类,并附有解释和示例。
2023-11-16 09:19:12
113
原创 Redisson分布式锁
Redisson是一个在Redis的基础上实现的Java驻内存数据网格(In-Memory Data Grid)。它不仅提供了一系列的分布式的Java常用对象,还提供了许多分布式服务。Redisson提供了使用Redis的最简单和最便捷的方法。Redisson的宗旨是促进使用者对Redis的关注分离,从而让使用者能够将精力更集中地放在处理业务逻辑上。Redisson底层采用的是Netty 框架。支持Redis 2.8以上版本,支持Java1.6+以上版本。
2023-11-07 15:06:49
221
原创 零拷贝(Zero-copy)详解
零拷贝(Zero-copy)是一种高效的数据传输机制,在追求低延迟的传输场景中十分常用。本文先通过传统方案引出零拷贝机制,然后分析其细节,最后介绍它的部分应用。文中涉及到的操作系统理论知识都可以参考英文维基或者相关书籍,如Abraham Silberschatz著《操作系统概念》、Andrew S. Tanenbaum著《现代操作系统》等。
2023-10-10 09:24:29
434
1
原创 Nginx常用配置及和基本功能讲解
Ngnix是一款高性能反向代理服务器,学习它非常有必要,本文讲解了Ngnix核心配置,介绍了反向代理,负载均衡,动静分离三大功能,最后扩展了一些常用的指令。本文介绍了Ngnix的基础用法,后续的Ngnix内核以及原理部分有待研究。
2023-10-10 08:43:24
83
1
原创 Redisson分布式锁详细介绍
官方网站 & 高性能版官方描述:Redisson是一个在Redis的基础上实现的Java驻内存数据网格(In-Memory Data Grid)。它不仅提供了一系列的分布式的Java常用对象,还提供了许多分布式服务。Redisson提供了使用Redis的最简单和最便捷的方法。Redisson的宗旨是促进使用者对Redis的关注分离,从而让使用者能够将精力更集中地放在处理业务逻辑上。Redisson底层采用的是Netty 框架。支持Redis 2.8以上版本,支持Java1.6+以上版本。
2023-10-09 08:47:04
212
原创 BigDecimal不可触碰的6个坑
因为double类型只能表示有限的小数,而BigDecimal可以表示任意精度的小数,当一个BigDecimal对象的小数部分超过了double类型的精度范围时,使用doubleValue方法将会丢失精度。如果需要将BigDecimal转换为double类型,应该使用BigDecimal的toBigInteger方法来获取一个BigInteger类型的值,再使用doubleValue方法进行转换。需要注意的是,setScale方法返回的是一个新的BigDecimal对象,原对象并没有被修改。
2023-10-08 09:02:33
82
原创 Linux CentOS下删除.swp文件
出现这种问题的原因往往是因为网络断了或者开关vpn造成与阿里云断开连接,为了保护文件防止丢失自动生成.swp文件,解决方法如下。用ls -a 可查看遗留的.swp文件。rm -rf +文件名删除.swp文件。
2023-05-04 16:08:43
633
原创 Docker数据目录迁移
采用yum或者rpm方式安装的docker,在安装好以后,默认的数据目录是/var/lib/docker。很多人在安装好docker以后,会忽略对这个目录的修改,并开始使用docker。这就会导致系统根目录被过大的占用,下面就简单讲一下如何对该目录进行迁移。在数据迁移和备份完成以后,有通过建设软连接和修改配置文件两种方式来应用新数据目录。修改daemon.json配置文件,增加"data-root"配置信息。将新的数据目录软连接到默认目录,重启docker即可。3、 应用新数据目录。3.2 修改配置文件。
2023-05-04 16:04:40
258
原创 shell脚本中根据端口号kill对应的应用进程
在Jenkins的自动部署中,每次重新部署我们都需要先关闭原先的应用进程,然后重新部署启动。在使用tomcat时,我们可以通过startup.sh和shutdown.sh进行对应操作。但是在使用springboot的Jar包时,却无从下手了(有知道的告诉兄弟一声),所以采取的办法是直接kill掉应用的pid,然后重新部署启动。每次启动的pid都是不一样的,而已知的是应用的端口号,那么如果能通过端口号查询到应用的pid不就行了吗。
2023-05-04 16:00:10
553
原创 MongoDB为什么比Mysql高效
在分片集群中,有一个特定的MongoDB节点充当分片协调器(mongos),负责接收客户端的请求,将请求路由到对应的分片节点上,并将结果返回给客户端。总的来说,MySQL的数据存储方式是传统的关系型数据库方式,适用于结构化数据的存储和查询。具体来说,MongoDB中的数据是以BSON(Binary JSON)文档的形式组织的,每个文档都是一个键值对的集合,可以包含任何类型的数据。在MongoDB中,数据的读写操作都是基于内存的,MongoDB会将频繁访问的数据缓存在内存中,以提高查询和更新的速度。
2023-04-13 08:56:34
1376
1
原创 Docker数据目录迁移
采用yum或者rpm方式安装的docker,在安装好以后,默认的数据目录是/var/lib/docker。很多人在安装好docker以后,会忽略对这个目录的修改,并开始使用docker。这就会导致系统根目录被过大的占用,下面就简单讲一下如何对该目录进行迁移。在数据迁移和备份完成以后,有通过建设软连接和修改配置文件两种方式来应用新数据目录。修改daemon.json配置文件,增加"data-root"配置信息。将新的数据目录软连接到默认目录,重启docker即可。3、 应用新数据目录。3.2 修改配置文件。
2023-04-13 08:54:58
386
1
iText中文帮助文档
2018-08-15
mysql sql 百万级数据库优化方案
2018-08-14
vlc播放器,播放m3u8
2018-07-27
opencv安装包V3.4.2
2018-07-27
CMMI中22个KPA
2010-01-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人