- 博客(303)
- 收藏
- 关注
原创 python笔试输入输出模板ACM模式
:文件对象(包含所有输入内容,直到遇到文件结束符EOF),不能直接strip()或split():去除行首尾的空白字符(如换行符)。:将字符串按空格分割成列表(如[‘1’, ‘5’])。:将列表中的每个元素转换为整数。:计算两个整数的和。输入行数,再输入多行,每行空格分割等效参数或者输入多行,每行空格分割等效参数,直到遇到固定输入如0 0或者输入多行,每行开头为参数个数,然后是空格分割的等效参数,直到参数个数为固定值如0结束输入行数,再输入多行,每行开头为参数个数,然后是空格分割
2025-03-28 23:27:15
236
原创 数据结构与算法:链表相关力扣题:203.移除链表元素、707. 设计链表、206. 反转链表、24.两两交换链表中的节点、19. 删除链表的倒数第 N 个结点、142.环形链表 II
效率:0ms,击败100.00%
2025-03-27 22:55:24
318
原创 分布式系统面试总结:3、分布式锁(和本地锁的区别、特点、常见实现方案)
仅供自学回顾使用,请支持javaGuide原版书籍。本篇文章涉及到的分布式锁,在本人其他文章中也有涉及。
2025-03-27 20:01:39
411
原创 分布式系统面试总结:2、分布式ID的业务场景:一码付(微信/支付宝二维码付款)、订单号、优惠券/兑换券、日志跟踪/分布式链路跟踪(trace和span的生成规则)、短网址
仅供自学回顾使用,请支持javaGuide原版。
2025-03-26 21:01:54
915
原创 数据结构与算法:数组相关力扣题:27.移除元素、977.有序数组的平方、209.长度最小的子数组、59. 螺旋矩阵 II
因为要原地操作,所以一开始的思路就是遍历数组,遇到数值符合的元素,将其和后面的元素两两交换从而实现后移一位。这个代码的问题就是,如果在数组中遇到重复的数值等于val的元素,这个两两交换且后移一位就会失效。
2025-03-25 21:59:04
655
原创 分布式系统面试总结:2、分布式ID的特性、数据库生成(mysql自增主键、号段模式、redis的incr)、算法生成(UUID、Snowflake雪花算法)、开源框架生成(Leaf、Tinyid)
一个好的分布式ID除了满足基本条件(如全局唯一)之外,最好还有以下特性:最简单的一种,通过自增主键产生来唯一的 ID。stub 字段无意义,只是为了占位,便于我们插入或者修改数据。并且,给 stub 字段创建了唯一索引,保证其唯一性。然后我们通过 来插入数据。1.2.1.1.1. vs 插入数据这里,我们没有使用而是使用来插入数据。因为的实现如下:而的实现如下:支持的并发量不大存在数据库单点问题(可以使用数据库集群解决,不过增加了复杂度)ID 没有具体业务含义安全问题(比如根据订单 ID 的递增规
2025-03-25 18:58:02
829
原创 分布式系统面试总结:1、CAP+BASE理论、Raft算法(选举机制、心跳机制)、API网关:常见功能、和反向代理的区别、Spring Cloud Gateway(过滤器、如何自定义全局异常处理)
在 SpringBoot 项目中,我们捕获全局异常只需要在项目中配置 @RestControllerAdvice和 @ExceptionHandler就可以了。不过,这种方式在 Spring Cloud Gateway 下不适用。Spring Cloud Gateway 提供了多种全局处理的方式,比较常用的一种是实现ErrorWebExceptionHandler并重写其中的handle方法。
2025-03-20 15:27:15
473
原创 系统设计面试总结:8、java的web端站内信/消息推送详解:短轮询、长轮询、SSE、Websocket
进攻自学回顾使用,请支持javaGuide原版书籍。
2025-03-19 20:59:29
647
原创 数据结构与算法:动态规划dp:子序列相关力扣题(下):392. 判断子序列、115.不同的子序列、583. 两个字符串的删除操作、72.编辑距离、647. 回文子串、516. 最长回文子序列
效率:19ms,击败16.26%代码简单是简单,就是效率太低了。我们不需要使用两重循环来遍历两个字符串,而是直接双指针一起遍历即可。
2025-03-13 23:18:12
198
原创 系统设计面试总结:7、java的定时/延时任务:单机(ScheduledThreadPoolExecutor、Spring Task、时间轮)、分布式任务调度框架(Quartz、XXL-JOB)
它是 BlockingQueue 的一种,底层是一个基于 PriorityQueue 实现的一个无界队列,是线程安全的。当我们需要新建一个 3s 后执行的定时任务,只需要将定时任务放在下标为 3 的时间格中即可。当我们需要新建一个 9s 后执行的定时任务,只需要将定时任务放在下标为 9 的时间格中即可。时间轮中的每个时间格代表了时间轮的基本时间跨度或者说时间精度,假如时间一秒走一个时间格的话,那么这个时间轮的最高精度就是 1 秒(也就是说 3 s 和 3.9s 会在同一个时间格中)。有点伪分布式的味道。
2025-03-13 19:09:32
1062
原创 系统设计面试总结:6、敏感词过滤方案:Trie字典树、DAT、AC自动机;数据脱敏方案:Hutool(配合jackson通过注解实现脱敏)、FastJson、MyBatis-Flex(自定义代码实现)
Retention (RetentionPolicy.RUNTIME):运行时生效。@Target (ElementType.FIELD):可用在字段上。@JacksonAnnotationsInside:此注解可以点进去看一下是一个元注解,主要是用户打包其他注解一起使用。@JsonSerialize:上面说到过,该注解的作用就是可自定义序列化,可以用在注解上,方法上,字段上,类上,运行时生效等等,根据提供的序列化类里面的重写方法实现自定义序列化。
2025-03-12 19:19:44
657
原创 系统设计面试总结:5、加密算法的应用场景、哈希算法(MD、SHA、BCrypt)、对称加密(DES和3DES、AES)、非对称加密(RSA、DSA)
仅供个人学习回顾,请支持javaGuide原版书籍。
2025-03-12 01:25:33
993
原创 系统设计面试总结:4、单点登录SSO的概念、优势、OAuth2.0、具体实现(含时序图和跨域登录/登出的解决方案)
本文仅供自学回顾,请支持javaGuide原版书籍。
2025-03-07 15:15:32
857
原创 数据结构与算法:回溯(下):子集相关力扣题(78.子集、90.子集Ⅱ、491.非递减子序列)、排列相关力扣题(46.全排列、47.全排列Ⅱ)、棋盘问题(51.N皇后、37.解数独)
效率:0ms,击败100.00%效率:0ms,击败100.00%给你一个整数数组 nums ,找出并返回所有该数组中不同的递增子序列,递增子序列中 至少有两个元素 。你可以按 任意顺序 返回答案。数组中可能含有重复元素,如出现两个整数相等,也视作递增序列的一种特殊情况。示例 1:示例 2:提示:初版代码一开始我的代码如下:这个代码通过了47 / 58。当遇到序列: 时,其输出是:但实际上正确输出应该是这很明显是去重出了问题。那对于这种式的例子,为什么去重出了错误?因为答案允许的是但代码生
2025-03-05 17:14:37
606
原创 系统设计面试总结:3、JWT的概念和组成(header、payload、signature)、基于JWT进行身份认证、优缺点、常见问题及解决方案(注销后JWT还有效问题、续签问题、体积过大问题)
是目前最流行的跨域认证解决方案,是一种基于Token的认证授权机制。JWT本身也是一种规范化之后的JSON结构的Token。JWT自身包含了身份验证所需要的所有信息,因此,我们的服务器不需要存储Session信息。可以看出,JWT更符合设计时的Stateless(无状态)原则。并且, 使用JWT认证可以有效避免CSRF攻击,因为JWT一般是存在在中,是不会涉及到Cookie的。
2025-03-05 14:48:52
1069
原创 数据结构与算法:回溯(上):理论基础、组合力扣题(77组合、216组合总和Ⅲ、17电话号码的字母组合、39组合总和、40组合总和Ⅱ、93复原IP地址)、分割力扣题(131分割回文串、93复原IP地址)
回溯算法是一种纯暴力搜索,一般会用到递归函数。几乎所有回溯都可以抽象成树形结构。一般树的宽度就是处理的集合的大小(代码中一般用for处理),高度就是递归的层数。
2025-03-04 21:51:35
557
原创 系统设计面试总结:2、认证Authentication(下):没有Cookie时Session还能用吗?为什么Cookie无法防止CSRF攻击,而Token可以?
仅供自学回顾使用,请支持javaGuide原版。
2025-03-04 15:52:18
733
原创 系统设计面试总结:2、认证Authentication(上):Cookie+Springboot使用cookie案例、Session、单体/多节点环境使用 Session-Cookie方案
仅供自学回顾使用,请支持javaGuide原版。
2025-02-28 11:19:52
682
原创 系统设计面试总结:1、代码命名、代码重构、单元测试(TDD、敏捷开发、DDD、MVP、框架选择)
本篇仅供自学回顾,请支持javaGuide原版。
2025-02-27 16:05:39
636
原创 Mybatis面试总结(下):xml文件和mybatis内部结构的映射关系是?为什么说MyBatis是半自动ORM?它与全自动的区别是?
MyBatis将所有xml配置信息都封装到All-In-One重量级对象内部。在xml映射文件中,标签会被解析为对象,其每个子元素会被解析为对象。标签会被解析为ResultMap对象,其每个子元素会被解析为对象。每一个标签均会被解析为对象,标签内的sql会被解析为BoundSql对象。
2025-02-27 15:31:36
155
原创 Mybatis面试总结(中):MyBatis是否支持延迟加载,其原理是什么?不同xml映射文件,id是否可重复?有哪些Executor执行器?是否可映射 Enum 枚举类?TypeHandler作用?
仅供自学使用,大部分内容来自javaGuide,请支持原版书籍。
2025-02-26 21:13:10
883
原创 Mybatis面试总结(上):#{} 和 ${} 的区别是?xml 映射文件中有哪些标签?Dao 接口的工作原理是什么?MyBatis 如何分页?分页插件原理是什么?插件运行原理是什么?如何编写插件
大部分内容来自于javaGuide。
2025-02-26 20:55:20
609
原创 数据结构与算法:动态规划dp:子序列相关力扣题(上):300. 最长递增子序列、674.最长连续递增序列、718.最长重复子序列、1143. 最长公共子序列、1035.不相交的线、53.最大子数组和
那么,我们就需要正序处理i,倒序处理j,因为当处理到i的时候,如果我们倒序处理j,那么在计算dp[j]的时候,dp[j-1]还没有被当前i的循环处理过,所以它保存的是i-1时的值,这才是正确的值。,很显然,当前位置的状态仅依赖于其左上角的状态,那么我们就可以定义一个一维的dp数组。可以看到效率是比较低的,如果想要优化的话,可以进行状态压缩。学校屠鼠馆真的疯了……效率:2182ms,击败16.44%效率:2364ms,击败8.26%效率:3ms,击败77.69%效率:7ms,击败24.83%
2025-02-26 20:31:20
196
原创 数据结构与算法:动态规划dp:买卖股票相关力扣题(下):309. 买卖股票的最佳时机含冷冻期、714. 买卖股票的最佳时机含手续费
在这因为题目说了允许买卖多次,所以我们不需要记录。同时因为含有冷冻期,所以我们需要将。
2025-02-26 17:52:24
386
原创 数据结构与算法:图论(上):连通图+强连通图+连通分量+强连通分量、稀疏图和稠密图、图的存储(二维数组、邻接表、邻接矩阵)、BFS和DFS的java及py板子、深拷贝实现、110. 所有可能的路径
图的难点主要在于图的表达形式非常多,即数据结构实现的形式很多。算法本身不是很难理解。所以建议精通一种数据结构后遇到相关题写个转换数据结构的接口,再套自己的板子。此外,关于图的一些基本概念如下。
2025-02-26 15:41:25
458
原创 网络药理学之薛定谔Schrödinge Maestro:7、批量分子对接(使用XGlide/Crossdocking模块进行蛋白质和配体多对多交叉对接)及生成热图
25.03.19回顾时发现漏洞和需要补充的地方。二次修正呃呃呃呃修订了好多,结果优快云卡住退出了……痛需要大家自行准备多个蛋白质(PDB格式)和多个小分子配体(最好是mol2格式。在开始批量对接前,确保你prep_lig。
2025-02-26 14:18:19
586
4
原创 Linux相关知识(文件系统、目录树、权限管理)和Shell相关知识(字符串、数组)
Linux是一种类Unix系统。严格来讲,Linux 这个词本身只表示Linux内核,单独的 Linux 内核并不能成为一个可以正常工作的操作系统。所以,就有了各种Linux 发行版(Red Hat、Ubuntu、CentOS等)。Linux之父(林纳斯·本纳第克特·托瓦兹 Linus Benedict Torvalds):他是 Linux内核 的最早作者,还发起了Git这个开源项目,并为主要的开发者。
2025-02-25 19:45:44
1708
原创 Docker:3、在VSCode上安装并运行python程序或JavaScript程序
,第一个点代表根目录下的所有文件,第二个点表示当前的工作路径。允许我们在创建镜像时运行任意的命令。 来安装程序的所需库。来指定当容器运行之后要执行的命令1.3.创建镜像打开终端,输入命令 后面跟的参数应该替换成你要创建的镜像的名字。最后的告诉应该在当前目录下寻找这个再输入或者命令,查看创建的镜像列表里面是否包含刚刚我们创建的镜像。打开终端,输入命令 后面跟的参数是本机端口后面跟的是映射的容器的端口 让容器在后台运行,这样容器的输出就不会直接显示在控制台上。也可以不进行端口映
2025-02-19 17:09:35
501
原创 Docker:4、数据管理(volume数据卷、挂载主机目录bind mounts、tmpfs)、docker-compose(相关命令)、原理(namespace和cgroup)
一个项目往往涉及到前端、后端、缓存、数据库等多个服务,这些服务相互独立,又彼此关联。的出现就是为了通过一个单独的的配置文件来管理这些服务。使得开发人员只需要一条命令就可以实现启动、停止、重构这些服务。特别是项目交接时,只需要这条命令启动就可以自动安装整个项目所需要的各种依赖和配置。是基于Python编写的开源项目,地址在。多容器管理:允许用户在一个YAML文件中定义和管理多个容器。服务编排:配置容器间的网络和依赖关系。,可以轻松地启动和停止整个应用程序。
2025-02-19 17:08:15
637
原创 Docker:1、概述:镜像(不可变、UnionFS技术)、容器(独立命名空间、不应存储数据)、仓库(docker hub、docker search)、容器和虚拟机的区别、常见命令
dockerhubDocker本身是一个软件容器平台。也就是说,平常我们经常说的【使用Docker】,实际上是【使用这个平台上的容器】。Docker使用Google公司推出的Go语言 进行开发实现,是基于Linux内核提供的CGroup功能和namespace来实现的。在Docker中存在三个重要概念:镜像、容器和仓库。使用Dockerdockerfile,自动化脚本,主要用来创建镜像。如果你想要知道dockerfile里面具体有什么东西,可以见本Docker专栏的另一篇文章。image。
2025-02-18 19:46:46
487
原创 Docker:2、全平台安装及报错解决(Requires log out、unable to detect a Hypervisor、WSL 2 installation incomplete)
在Windows上使用docker desktop安装,在mac上使用homebrew安装,在linux上安装docker
2025-02-18 19:46:05
395
原创 数据结构与算法:动态规划dp:买卖股票相关力扣题(上):121.买卖股票的最佳时机、122. 买卖股票的最佳时机 II、123. 买卖股票的最佳时机 III、188. 买卖股票的最佳时机 IV
全程只允许一次买卖,而且不许当天卖出。
2025-02-18 16:29:22
697
原创 数据结构与算法:动态规划dp:打家劫舍相关力扣题(198.打家劫舍、213.打家劫舍Ⅱ、337.打家劫舍Ⅲ)
dp[i]代表着对于下标0到i的房间,能偷盗的最大金额。效率:0ms,击败100.00%
2025-02-18 16:18:08
279
原创 数据结构与算法:动态规划dp:完全背包理论基础和相关力扣题(518.零钱兑换Ⅱ、377.组合总和Ⅳ、322零钱兑换、279.完全平方数、139.单词拆分)
对于518.零钱兑换Ⅱ给定一个重量为target的背包,问装满背包的组合数。dp[0] = 1# 这行是遍历物品对于377.组合总和Ⅳ给定一个重量为target的背包,问装满背包的排列数。dp[0] = 1# 这行是遍历物品对于322.零钱兑换给定一个重量为target的背包,求装满这个背包的物品数最少是多少。dp[0] = 0# 这行是遍历物品对于279.完全平方数给定一个重量为target的背包,求装满这个背包的物品数最少是多少。dp[0] = 0# 这行是遍历物品对于139.单词拆分。
2025-02-12 17:01:13
155
原创 sql:MongoDB(下):索引、复合索引(字段顺序和左前缀原则)、TTL索引(原理和限制)、复制集群(oplog)、分片集群(分片键、分片策略、分片分裂和再平衡)
假设存在集合articlesMongoDB 支持多种类型的索引:单字段索引: 建立在单个字段上的索引,索引创建的排序顺序无所谓,MongoDB 可以头/尾开始遍历。复合索引: 建立在多个字段上的索引,也可以称之为组合索引、联合索引。这里,1表示索引是按升序创建的。我们可以根据需要为每个字段指定升序(1)或降序(-1)。});多键索引:对于是数组的字段创建索引,就是多键索引。此时我们按照数组里面的值做条件来查询。这里,1表示索引是按升序创建的。
2025-02-12 11:40:56
683
原创 sql:MongoDB(上):BSON概念、特性(ACID事务、支持failover+分片集群+GridFS存储大文件)、存储引擎(WiredTiger)、聚合管道(阶段操作符)、Snappy压缩
仅学习自用,请支持javaGuide官方。MongoDB是一个基于 分布式文件存储 的开源NoSQL数据库系统,由C++编写。在高负载的情况下,MongoDB天然支持水平扩展和高可用,可以很方便地添加更多的节点/实例,以保证服务性能和可用性。MongoDB和SQL一个MongoDB中可以创建多个数据库,每一个数据库都有自己的集合和权限。MongoDB预留了几个特殊的数据库。
2025-02-11 17:32:19
892
原创 数据结构与算法:动态规划dp:背包问题:01背包理论基础(滚动数组、状态压缩)和相关力扣题(416. 分割等和子集、1049.最后一块石头的重量Ⅱ、494.目标和、474.一和零)
这道题转化一下思路,就可以变成和416. 分割等和子集一样的问题。因为我们知道,如果两堆石头的重量越相近,那么相撞后可以留下的重量就越小。也是求 任取其中的石块,看背包能装下的这堆石块的最大重量 是否能越靠近目标数(整体重量的一半)。效率:19ms,击败74.61%对于416. 分割等和子集给定一个重量为target的背包,是否能装满这个背包对于1049.最后一块石头的重量Ⅱ给定一个重量为target的背包,该背包能装的最大价值(价值就是重量)是多少?对于494.目标和给定一个重量为target。
2025-02-11 15:42:17
888
原创 sql:常见面试题总结(having和where、通配符、concat和substring、count分组聚合、子查询、union、连接(using、inner join)
OrderItems表含有:订单号order_num,产品数量quantity【问题】从OrderItems表中检索出所有不同且不重复的订单号(order_num),其中每个订单都要包含 100 个或更多的产品。【答案】【注意】注意这里不可以将HAVING替换为WHERE。因为后者用在聚合函数()、数据分组(GROUP BY)、数据排序(ORDER BY)之前。而HAVING要用,也必须要与GROUP BY连用,不能单独使用。
2025-02-07 17:35:44
646
原创 sql:权限管理、存储过程、视图、触发器
简单解释一下:1.3.查看权限2.存储过程我们可以把存储过程看成是一些 语句的集合,中间加了点逻辑控制语句。存储过程在业务比较复杂的时候是非常实用的且一旦调试完成通过后就能稳定运行,另外,使用存储过程比单纯 语句执行要快,因为存储过程是预编译过的。存储过程在互联网公司应用不多,因为存储过程难以调试和扩展,而且没有移植性,还会消耗数据库资源。阿里巴巴 开发手册里要求禁止使用存储过程。使用存储过程3.视图视图是基于 语句的结果集的可视化的表。视图是虚拟的表,本身不包含数据,也就不能对其进行索
2025-01-20 10:33:50
705
原创 数据结构与算法:动态规划dp:理论基础和相关力扣题(509.斐波那契数列、70.爬楼梯、62. 不同路径、63.不同路径Ⅱ、343.整数拆分、96.不同的二叉搜索树)
再优化一下,因为每个斐波那契数只和它相邻的两个数有关,所以我们其实不需要存储三十多个长度,只需要保留2个数的信息即可。效率:0ms,击败100.00%效率:0ms,击败100.00%效率:2ms,击败83.69%509.斐波那契数列。需要注意的是,这里的。
2025-01-16 17:35:44
286
黑马头条初始化工程项目代码
2024-02-07
黑马头条初始化工程maven仓库
2024-02-07
sky-take-out阶段性工程代码(day04-套餐之分页查询、新增套餐、修改套餐、启用禁用套餐)
2023-11-05
sky-take-out阶段性工程代码(店铺营业状态查询与设置)
2023-11-01
redis可视化客户端Another-Redis-Desktop-Manager.1.5.5和redis win、linux版本
2023-11-01
sky-take-out资料
2023-10-17
javaweb:mybatis之mapper三种实现方式的代码,第一种是sql映射实现,第二种是代理实现,第三种是注解实现
2023-10-11
Django之十四、添加用户之django组件Form/ModelForm实现
2023-10-04
java常用映射器(b站黑马程序员瑞吉外卖代码资源)
2023-09-01
springboot练手项目reggie外卖的数据库、pom文件、application文件、前端资源
2023-07-15
Hypervisor脚本:解决电脑没有HyperV问题
2023-07-13
三、Django之使用模板并引用静态内容:jquery-3.6.0.min.js和bootstrap-3.4.1
2023-06-27
Vue3项目调用百度地图不成功
2024-02-08
vue页面文字自动左右翻转的问题
2024-02-08
一个vue3项目的页面跳转失效问题
2024-02-08
spring/springboot自定义aop注解失效
2023-10-21
使用mockjs模拟图片并展示在前端时报错
2023-09-20
设置的@TableId(type = IdType.AUTO)不生效
2023-09-19
springboot整合本机redis测试出错
2023-09-02
使用WEIBO数据集做中文实体识别时无法跑通项目
2023-07-05
请问Django可以直接在models.py里面用orm删除数据吗?
2023-06-29
使用Django的load语法加载图片失败
2023-06-23
使用Django的load语法加载图片失败
2023-06-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人