自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(83)
  • 收藏
  • 关注

原创 4年经验 后端面试记录

面试过程中,项目相关的问题因人而异,本帖重点记录在面试过程中遇到的算法或场景题。

2025-04-19 16:14:36 635

原创 剑指offer 刷题笔记

1.二维数组的查找在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。思考从右上角开始查找,每次比较目标值和当前位置,如果小于目标值,行索引++,大于目标值,列所索引++,否则返回true代码class Solution { public b...

2020-03-01 14:00:22 381

原创 leetcode 42. 接雨水

2.再次遍历数组,根据木桶原理,取min(left max,right max)和当前高度做对比。1.分别从两个方向遍历,数组存储遍历过程中的最大值。(这里可以只用一个数组,还有优化空间)

2025-03-15 14:20:32 181

原创 Java上报Prometheus监控指标

Prometheus有Pull和Push两种上报模式,在上面的业务场景里,我们只能使用Push的方式,通过代码将监控指标push到PushGateway进行上报。在一些Spark批任务中,我们经常涉及到需要对某些业务指标进行监控上报,特开此篇记录一下,在Java中上报的代码实现。

2025-01-17 14:27:38 368

原创 Autoxjs实现微信好友删除检测

发现Autoxjs还挺好玩的,通过简单的代码就可以实现自动化功能操作,解放双手。突发奇想就拿来实现微信好友检测的功能。相比其他第三方提供的微信好友检测功能,有如下优点:1.免费2.可以在个人安卓机器上直接操作,全过程可视化,不需要去第三方登录微信,安全性可以得到保障。

2024-11-17 11:05:44 495

原创 autoxjs学习

1.安卓手机或电脑下载雷电模拟器2.下载autoxjs apk并安装3.下载vs code4.vs code安装autoxjs扩展插件。

2024-10-26 11:44:50 400

原创 leetcode 括号类型题解

使用栈+一次遍历,巧妙得出最长有效括号长度。参考宫水三叶题解,非常有启发意义。32. 最长有效括号。

2024-08-20 23:03:38 340

原创 leetcode912 排序数组之 堆排序

Golang实现如下,不建议直接看题解,容易满头雾。

2024-08-19 21:18:50 171 1

原创 ES dsl查询filter(或must)和should并用时should子句不生效

为解决这个问题,需要将should子句和filter子句合并,将should子句作为filter子句内的一部分,才能达到想要的查询效果。记录下今天编码时遇到的问题,在filter和should同级并用的查询下,should子句并没有生效,只有filter子句生效。

2024-05-06 17:04:18 1476 1

原创 动态规划算法 - LC354. 俄罗斯套娃信封问题

这道题是最长上升子序列的变种题,难点在于:首先需要先对给定的二维数组进行排序后,再求上升子序列。

2024-04-08 09:00:19 603

原创 滑动窗口算法 - LCR 014. 字符串的排列

接前文,此题也是套用滑窗模板,但是在两个细节点处稍有不同。

2024-04-04 17:55:41 303

原创 滑动窗口算法 - LC76 最小覆盖子串

这道进阶题其实不算难,但细节拉满,漏掉一处都无法通过,我将解题的关键点都注释在代码中。,介绍了滑窗的基础题目和滑窗解法模板,这次带来滑窗进阶题解。所有字符的子串,则返回空字符串。所有字符的最小子串。

2024-04-03 20:42:10 446

原创 滑动窗口算法 - LC3 无重复字符的最长子串

2.用一个map记录[l,r]中每个字符出现的次数,每次循环时对次数进行判断,从而判断是否需要移动左指针。因为题目是求不重复的子串,那么我们就要保证每次新进入到滑窗内的字符,即r所在位置的字符,它在map里对应的出现次数==1,否则,说明当前[l,r]中存在重复字符,我们要修改map[s[l]]--,同时向后移动左指针l。因为核心使用l和r指针形成滑动窗口[l , r ],在两层for循环里,外层移动r指针,里层移动l指针。所在字符出现次数是否>1,而移动的却是。这里重点是内层的循环,判断的是。

2024-04-03 09:14:42 407

原创 二分查找算法刷题记录 -LC34

该题是基于LC704的拓展题,也是二分查找的各个细节点所在,做透这个题,二分查找的题基本上都可以解决。

2024-04-01 21:46:56 321

原创 二分查找算法刷题记录-LC704

(1)如果nums[mid]>target,那么说明目标值所在index应该在[l,mid-1],这是一个闭区间,由于我的解法是右开区间写法,那么转化成开区间[1,mid),因此需要赋值right=mid。(2)如果nums[mid]

2024-04-01 09:42:40 571

原创 个人建站的过程和踩坑经验

最近搭建了一个web应用,主要给用户提供免费的小工具使用,特开此贴记录下,包括从等过程宝贵的踩坑经验。1.服务器:腾讯云轻量应用服务器2.域名:腾讯云购买 www.iliketools.cn3.部署工具:宝塔面板(推荐个人建站一定使用这个,能节省不少时间)3.前端:vue3(边看边学花了3天,算是凑合能写了)4.后端:golang+python(对我来说最简单的两种语言,dddd)

2024-03-31 16:46:45 369

原创 中间件 八股

中间件 八股

2022-10-27 22:32:56 267

原创 计网&操作系统 八股

计网&http 八股

2022-10-26 21:55:15 650

原创 0819-随手记

今天看书发现es中搜索时可以对字符组成相近的字符串进行匹配搜索,实际上设计算法来自于https://leetcode-cn.com/problems/edit-distance/顺便把这道题也刷一下https://leetcode-cn.com/problems/shortest-distance-to-a-character/...

2021-08-19 12:57:23 193

原创 facebookgo/inject 源码学习

document链接:https://pkg.go.dev/github.com/facebookgo/injectinject.go中两个核心数据结构:// An Object in the Graph.type Object struct { Value interface{} Name string // Optional Complete bool // If true, the Va..

2021-08-17 17:57:36 548

原创 SpringBoot整合cxf jar包运行报错 完美解决

项目使用到SpringBoot整合cxf,为了在Linux服务器上运行,在idea中调试完毕后,通过maven打jar包,上传到服务器运行。然而,每次打完jar包运行之后,总有如下报错:org.apache.cxf.BusException: No binding factory for namespace http://schemas.xmlsoap.org/wsdl/soap/ registered."找了很多博客,都没有解决问题,常见的博客解决手段:1.SpringBoot和cxf依赖

2021-04-01 13:32:45 2051

原创 一个关于layui table渲染的问题

官网推荐方式是新建一个table标签,指定id(例如id="pdoTable"),然后用table.render({ elem:"#pdoTable", //....省略其他加载项})如此便可渲染一个layui风格的table。在渲染成功后,我尝试取id="demo"的table进行操作,但是函数操作失效。反复查看,发现代码逻辑无错误,检查网页元素发现,layui table的渲染方式比较特别。它不是在原来的table标签上加载内容,而是在原来的table下方生成..

2021-03-02 17:30:15 397

原创 模型预测控制记录

Matlab的MPC工具箱用户手册:https://www.mathworks.com/help/pdf_doc/mpc/mpc_ug.pdf官方文档:https://ww2.mathworks.cn/products/model-predictive-control.html

2020-12-02 12:51:25 244

原创 C#客户端和Java服务端Thrift通信

最近帮老师做项目,需要用C#作为客户端做传输数据给Java服务端,之前的代码是用原生Socket写的,Javkuana端这边非常的冗余复杂,难以维护,因此想到使用rpc框架来实现,方便后续的扩展和维护。查阅资料发现thrift框架提供了完整的序列化和传输。关于rpc的框架对比,见:https://tech.meituan.com/2015/02/26/serialization-vs-deserialization.htmlthrift这个框架的文档太少了,想真的把框架落地使用太难了555...

2020-11-01 20:55:16 1232 4

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

给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是O(log n) 级别。如果数组中不存在目标值,返回[-1, -1]。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: [3,4]示例2:输入: nums = [5,7,7,8,8,10], target = 6输出: [-1,-1]来源:力扣(LeetCode)链接:https://leet...

2020-07-18 20:35:25 191

原创 记录实习

202007.02改前辈的代码,发现新知识。其中一条sql中出现了这个"INSERT INTO `xxx` (xx, xx) " + "VALUES(#{xx}, #{xx}) " + "ON DUPLICATE KEY UPDATE Title = #{xx}, Modify_Time = now()"其中的ON DUPLICATE KEY UPDATE,表示如果有重复的行记录,那么更新行记录。没有则插入新的行。怎么判断行记录是否重复?mysql官网文

2020-07-02 17:54:41 223

原创 rpc框架编写 知识点查漏补缺

1.Java8中提供的completeFuture类2.连接zookeeper服务的框架CuratorFramework介绍链接如下:https://blog.csdn.net/xlt1217118135/article/details/91047304

2020-06-30 11:56:32 272

原创 leetcdoe 122. 买卖股票的最佳时机 II

给定一个数组,它的第i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。 随后,在第 4 天(股票价格 = 3)的时候买入,在第 ...

2020-06-28 15:07:53 1713

原创 leetcode 72. 编辑距离

给你两个单词word1 和word2,请你计算出将word1转换成word2 所使用的最少操作数。你可以对一个单词进行如下三种操作:插入一个字符删除一个字符替换一个字符示例1:输入:word1 = "horse", word2 = "ros"输出:3解释:horse -> rorse (将 'h' 替换为 'r')rorse -> rose (删除 'r')rose -> ros (删除 'e')示例2:输入:word1 = "int...

2020-06-28 09:51:42 155

原创 leetcode 打家劫舍1,2,3

198. 打家劫舍难度简单897你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你不触动警报装置的情况下,一夜之内能够偷窃到的最高金额。示例 1:输入:[1,2,3,1]输出:4解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。 偷窃到的最高金额 = 1...

2020-06-24 14:59:05 245

原创 leetcode 300. 最长上升子序列

给定一个无序的整数数组,找到其中最长上升子序列的长度。示例:输入: [10,9,2,5,3,7,101,18]输出: 4解释: 最长的上升子序列是[2,3,7,101],它的长度是 4。说明:可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。你算法的时间复杂度应该为O(n2) 。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-increasing-subsequence著作权归领扣网络所有。商...

2020-06-23 18:19:15 167

原创 leetcode 1143. 最长公共子序列

给定两个字符串text1 和text2,返回这两个字符串的最长公共子序列的长度。一个字符串的子序列是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。例如,"ace" 是 "abcde" 的子序列,但 "aec" 不是 "abcde" 的子序列。两个字符串的「公共子序列」是这两个字符串所共同拥有的子序列。若这两个字符串没有公共子序列,则返回 0。示例 1:输入:text1 = "abcde", text2 ...

2020-06-23 17:11:37 262

原创 leetcode 67. 二进制求和

给你两个二进制字符串,返回它们的和(用二进制表示)。输入为 非空 字符串且只包含数字1和0。示例1:输入: a = "11", b = "1"输出: "100"示例2:输入: a = "1010", b = "1011"输出: "10101"提示:每个字符串仅由字符 '0' 或 '1' 组成。1 <= a.length, b.length <= 10^4字符串如果不是 "0" ,就都不含前导零。来源:力扣(LeetCode)链接:htt...

2020-06-23 11:57:20 170

原创 leetcode150. 逆波兰表达式求值

根据 逆波兰表示法,求表达式的值。有效的运算符包括+,-,*,/。每个运算对象可以是整数,也可以是另一个逆波兰表达式。说明:整数除法只保留整数部分。给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。示例1:输入: ["2", "1", "+", "3", "*"]输出: 9解释: 该算式转化为常见的中缀算术表达式为:((2 + 1) * 3) = 9示例2:输入: ["4", "13", "5", "/", "+"...

2020-06-22 13:06:48 163

原创 leetcode 53.连续子数组的最大和

输入一个整型数组,数组里有正数也有负数。数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。示例1:输入: nums = [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释:连续子数组[4,-1,2,1] 的和最大,为6。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/lian-xu-zi-shu-zu-de-zui-da-he-lcof著作权归领扣网络所有。商业转载...

2020-06-21 20:19:40 221

原创 leetcode 343.剪绳子

给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]...k[m-1] 。请问 k[0]*k[1]*...*k[m-1] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。示例 1:输入: 2输出: 1解释: 2 = 1 + 1, 1 × 1 = 1示例2:输入: 10输出: 36解释: 10 = 3 + 3 + 4, 3 ×..

2020-06-21 14:33:29 211

原创 leetcode 15. 三数之和

给你一个包含 n 个整数的数组nums,判断nums中是否存在三个元素 a,b,c ,使得a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。示例:给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/3sum著作权归...

2020-06-20 17:51:40 203

原创 面试之多线程循环打印A、B、C

题目:有A、B、C 三个线程,A线程 输出“A”,B线程 输出“B”,C线程 输出“C”,要求同时启动3个线程,按照顺序输出“ABC”,循环10次,请使用代码实现。这里贴一下我自己写的代码,使用Synchronized,wait,notify实现:最后打印完结束程序这里用的System.exit(0),看了别人的答案,感觉每个线程中加for循环10次去获取锁,这样应该更合适一些。package JUCTest;import java.security.cert.TrustAnch.

2020-06-20 14:10:42 745

原创 leetcode 31. 下一个排列

实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须原地修改,只允许使用额外常数空间。以下是一些例子,输入位于左侧列,其相应输出位于右侧列。1,2,3 → 1,3,23,2,1 → 1,2,31,1,5 → 1,5,1来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/next-permutation著作权归领扣网络所有。商业

2020-06-20 11:44:22 169

原创 leetcode 297. 二叉树的序列化与反序列化

序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。请设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为一个字符串并且将这个字符串反序列化为原始的树结构。示例:你可以将以下二叉树: 1 / \ 2 3 / \ 4 5序列化为 "[1,2,3,null...

2020-06-19 16:31:54 178

空空如也

空空如也

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

TA关注的人

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