- 博客(305)
- 资源 (22)
- 收藏
- 关注
原创 一道使用LinkedList和Stack解决的算法题
学校的自助午餐提供圆形和方形的三明治,分别用数字 0 和 1 表示。所有学生站在一个队列里,每个学生要么喜欢圆形的要么喜欢方形的。餐厅里三明治的数量与学生的数量相同。所有三明治都放在一个 栈 里,每一轮:如果队列最前面的学生 喜欢 栈顶的三明治,那么会 拿走它 并离开队列。否则,这名学生会 放弃这个三明治 并回到队列的尾部。这个过程会一直持续到队列里所有学生都不喜欢栈顶的三明治为止。给你两个整数数组 students 和 sandwiches ,其中 sandwiches[i] 是栈里面第 i
2024-01-16 07:04:23 743
原创 处理含退格的字符串
字符串如果包含$,则将 $ 前的字符剔除,最后保留剔除后的字符串,输出其长度。利用String Builder对字符串处理。输出3,因为剔除后的字符串为abd。或者利用Stack对字符串处理。
2024-01-15 09:15:00 364
原创 数组中根据刷新时间间隔计算对应值
特斯拉发射火箭,从start时刻开始(包括start),由于发射台需要准备时间才能发射,因此需要period个单位时间就会有发射机会(不限制发射数量,只要若干火箭就绪则可以发射)。比如[[1,2],[4,6]],第一个订单在1时刻收到,需要2个单位时间准备就绪,在时刻3才能发射;现在有n个订单需要发射,用二维数组表示,即int[][] launches,第一个数字代表接收到该订单时刻,第二个数字代表准备就绪需要花费的时间。分享个关于数组中根据刷新时间间隔计算对应值的问题。未完待续-----------
2024-01-14 09:10:18 384
原创 数组中差值的最大值(寻找一个数组中左侧最大值与右侧最小值的差值)
今天跟大伙分享下关于数组中差值的最大值(寻找一个数组中左侧最大值与右侧最小值的差值)的计算思路的算法题,解决方案有许多,这里简单进行抛砖引玉。
2024-01-14 08:39:03 691
原创 【奇偶数合并】及【奇数偶数排序】
由于要对偶数合并且将合并值增加到相邻且相等2个偶数之间,然后相邻且相等奇数合并,原始数组长度可能会发生改变,因此需要用额外的数据结构进行存储临时计算结果数据。将所有相邻且相同的偶数相加放入相邻偶数中间 将所有相邻且相同奇数相加,替换掉这两个相邻且相同的奇数 最后输出合并后的数组结果。第一轮计算之后,需要判断是否还需要递归进行计算,如果需要,则递归奇偶数合并即可,最后输出计算结果。数组奇偶数合并之后[1,2,4,2,7,8,6,12,6]数组[1,2,2,7,8,3,3,6]今天分享一道很有意思的算法题目,
2024-01-06 07:24:20 348
原创 力扣:单调栈算法思路题
🍒 通常是在数组中需要通过比较前后元素的大小关系来找最近的比它大(小)的元素问题时,可以使用单调栈进行求解。单调栈分为单调递增栈和单调递减栈,通过使用单调栈我们可以访问到最近一个比它大(小)的元素。🍋什么情况适合用单调栈来解决实际问题呢?3:LeetCode 42. 接雨水。2:寻找左边第一个小于它的数的下标。1:寻找左边第一个小于它的数。
2023-11-26 06:41:04 607
原创 力扣:盛最多水的容器
双指针代表的是 可以作为容器边界的所有位置的范围。在一开始,双指针指向数组的左右边界,表示 数组中所有的位置都可以作为容器的边界,因为我们还没有进行过任何尝试。在这之后,我们每次将 对应的数字较小的那个指针 往 另一个指针 的方向移动一个位置,就表示我们认为 这个指针不可能再作为容器的边界了。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i])。解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。输入:[1,8,6,2,5,4,8,3,7]
2023-10-21 20:54:28 237
原创 巧用@Conditional注解根据配置文件注入不同的bean对象
项目中使用了mq,kafka两种消息队列进行发送数据,为了避免硬编码,在项目中通过不同的配置文件自动识别具体消息队列策略。这里整理两种实施方案,仅供参考!
2023-09-28 09:23:53 910
原创 【@PostConstruct、 @Autowired与构造函数的执行顺序】
Java提供的注解,被用来修饰方法,被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器执行一次。PostConstruct在构造函数之后执行,init()方法之前执行。调用的顺序为: 构造函数 > @Autowired > @PostConstruct(2)作用:@PostConstruct注解的方法在项目启动的时候执行这个方法,也可以理解为在spring容器启动的时候执行,可作为一些数据的常规化加载,比如读取数据字典之类、目录树缓存。
2023-09-23 19:47:03 1233
原创 利用Semaphore实现多线程调用接口A且限制接口A的每秒QPS为10
前段时间在群里面发现有个群友抛出一个实际需求:需要通过一个接口拉取数据,这个接口有每秒10QPS限制,请问如何实现数据拉去效率最大化且限制调用拉取接口每秒10PQPS?我觉得这个需求挺有意思的,跟某群友讨论,发现可以利用JUC包下的Semaphore实现,几行代码就能搞定。这里将实现方案做下整理,算是抛砖引玉吧~
2023-09-13 22:55:25 254
原创 Spring的重试机制-SpringRetry
在我们的日常开发中,经查会遇到调用接口失败的情况,这时候就需要通过一些方法来进行重试,比如通过while循环手动重复调用或,或者通过记录错误接口url和参数到数据库,然后手动调用接口,或者通过JDK/CGLib动态代理的方式来进行重试,但是这种方法比较笨重,且对原有逻辑代码的入侵性比较大。
2023-09-03 10:05:53 466
原创 如何使用 try-with-resources 优雅地关闭资源
今天学习下Java 7中引入的try-with-resources语法糖,一个非常有用的特性,它使得在代码中使用资源(例如文件或数据库连接)变得更加简单、方便和安全。try-with-resources 从反编译后的代码来看,编译器自动帮我们生成了 finally 块,并且在里面调用了资源的 close() 方法,所以例子TryWithResourceOldTest 中的close() 方法会在运行的时候被执行。如果不用这个语法糖,手动在finally块中关闭,则代码显得非常臃肿。
2023-08-26 08:02:03 282
原创 多线程事务怎么回滚?
在Spring中可以使用@Transactional注解去控制事务,使出现异常时会进行回滚,在多线程中,这个注解则不会生效。如果主线程需要先执行一些修改数据库的操作,当子线程在进行处理出现异常时,主线程修改的数据则不会回滚,导致数据错误。通过使用sqlSession控制手动提交事务,可以达到主线程和子线程数据事务回滚。
2023-08-13 17:54:49 327 1
原创 Mybatis实现JsonObject对象与JSON之间交互
项目中使用PostGresql数据库进行数据存储,表中某字段为Json类型,用于存储Json格式数据。PG数据库能够直接存储Json算是一大特色,很多特定情境下使用直接存储Json字段数据能够大量节省开发时间,提高后台数据查询和转换效率。
2023-08-04 06:07:35 1276
原创 记录本周五项目上线失败经验总结
从此次上线失败事件中,发现我们存在一个误区就是只要上线失败,就肯定是我们自己代码问题(虽然有时候确实这样)。但是既然经过了sit和uat两个环境的测试和检验,代码逻辑应该没啥问题!惯性思维有时候害死人!如果我们先分析接口调用链路情况,可能就不会再费力的去分析错误日志和代码逻辑了!有时候遇到问题,需要换种思路去分析,而不是盲目的自我怀疑。还有就是生产环境出问题,不要慌张,要冷静的分析查找根本原因,如果自己都乱了阵脚,那么很容易陷入思维误区或者事倍功半。
2023-07-30 00:06:17 343
原创 介绍下你们项目中各微服务之间怎么调用的?
在我们的项目中,我们可能会使用一些RPC框架(如gRPC、Thrift等)来定义和生成跨模块之间的通信接口,并通过序列化和反序列化技术来传输数据。在我们的项目中,我们使用一些流行的消息队列系统(如RabbitMQ、Apache Kafka等),其中一个微服务将产生的消息发送到消息队列,而其他相关模块则从队列中订阅并消费这些消息。为了实现这种共享,我们可以将这些共享数据存储在一个或多个共享数据库中(如MySQL、PostgreSQL等),并允许各个模块通过连接到该数据库来读取和写入数据。
2023-07-22 16:23:55 1086
原创 整数数组的奇数位于数组的前半部分,偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变
题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。类似于冒泡排序,从头开始,相邻元素只要是前偶后奇就交换,不同的是内循环每次都从头开始,防止一开始就有许多连续的偶数情况。开辟一个与原数组一样大的vector,从头遍历一遍将奇数放在前面,然后再遍历一遍,将偶数接着放在后面。
2023-07-16 19:35:16 256
原创 给你二叉树的根节点 root ,返回它节点值的中序遍历
题目:给你二叉树的根节点 root ,返回它节点值的中序遍历。这里考察中序遍历思想,使用Stack的后进先出特性输出结果。构造后的图形化展示结果,注意程序不会输出左右斜杠哦~buildTree构造树形结构数据。TreeNode树状结构。
2023-07-16 18:31:10 227
原创 异常执行结果随笔
前段时间有朋友问我异常执行顺序问题,这里简单记录下哈。伪代码描述,当j=0和j=1,输出结果分别是什么?当j=0时候,输出结果为。当j=1时候,输出结果为。
2023-07-16 09:04:51 192
原创 自定义starter实现接口或方法限流功能
*** 基于guava的令牌桶/*** 基于sentinel限流//设置受保护的资源 rule . setResource(resourceName);//设置流控规则 QPS rule . setGrade(RuleConstant . FLOW_GRADE_QPS);//设置受保护的资源阈值 rule . setCount(limitCount);//加载配置好的规则 FlowRuleManager . loadRules(rules);
2023-07-02 14:41:02 238
原创 【数组中的第K个最大元素】
请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。
2023-06-24 13:48:40 64
原创 SpringBoot自定义拦截器实现权限过滤功能(基于责任链模式)
项目采用Spring Boot 2.7.12 + JDK 8实现,权限认证就是一个拦截的过程,所以在实现的时候理论上可以做到任意的配置,对任意接口设置任意规则。考虑到鉴权是一系列顺序执行,所以使用了责任链模式进行设计和实现。
2023-06-04 15:07:57 1905
原创 For嵌套循环跳出外层循环(给for循环起别名)
这里分享下一个基本功:通过给for循环起别名,跳出时指定外层或内层循环。当想要跳出外层和内层循环时候,即break f1;当想要跳出内层循环时候,即break f2;
2023-06-03 14:15:13 502
原创 SpringBoot集成ElasticSearch
被逼无奈,各行各业都在卷,给自己充电学习了Elasticsearch,在学完基础知识后(其实就是CRUD😂),就去Springboot中尝试整合ES。终于抽出时间,将学习的东西整理分享在此,欢迎大家批评指正哈~
2023-05-28 18:00:01 4261 1
原创 SpringCloud-OpenFeign案例实战
关于Spring Cloud Open Feign的介绍可以参考这两篇博客本博客参考gitee开源项目代码,结合自己的理解,记录下微服务场景下的使用。
2023-05-07 15:09:56 746 1
原创 SpringBoot自定义Mybatis拦截器实现扩展功能(比如数据权限控制)
实际工作中,使用Mybatis拦截器可以做一些数据过滤、数据加密脱敏、SQL执行时间性能监控和告警等业务。MyBatis拦截器默认可以拦截的类型只有四种,即四种接口类型Executor、StatementHandler、ParameterHandler和ResultSetHandler。对于我们的自定义拦截器必须使用MyBatis提供的@Intercepts注解来指明我们要拦截的是四种类型中的哪一种接口。
2023-03-17 23:05:42 779 1
原创 JDK8系列之使用Function函数式接口
函数式接口是jdk8的新特性之一,函数式接口是只包含一个抽象方法声明的接口。按分类主要分为四大接口类型: Function、Consumer、Predicate、Supplier。
2022-12-17 22:53:00 1586
原创 享元模式分析与实践
享元就是共享单元(元素)的意思。单元代表了整体的部分,如果一个对象其中的部分是稳定的不会改变的,那么这个部分即可以共享。享元模式的用途就是复用对象的单元,让对象的节省内存。
2022-12-10 23:41:04 815
dubbotest1-master.7z
2021-07-29
dubbo-admin-2.5.4.war.7z
2021-07-29
Linux中安装Oracle12c介质.docx
2020-08-03
springboot.7z
2020-07-18
springboottest1.7z
2020-07-17
SpringShiroDemo.7z
2020-06-04
基于MapReduce的Apriori算法并行化改进
2017-11-08
基于MapReduce的Apriori算法代码及其使用
2017-11-08
基于MapReduce的Apriori算法代码
2017-11-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人