自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring boot + Redis + Spring Cache 实现缓存

Redis 存储的是 key-value 结构的数据。

2024-04-27 11:08:29 1589 1

原创 Spring Boost + Elasticsearch 实现检索查询

需求:对“昵称”进行“全文检索查询”,对“账号”进行“精确查询”。

2024-04-25 17:44:27 1021 5

原创 Spring boot + MyBatis-Plus3

在 service 层直接调用。

2024-04-24 19:44:53 854 1

原创 RabbitMQ + Spring Boot + Python的使用过程

需求:后端执行Pytorch框架下的模型,对输入图像的评估,得到一个分数。

2024-04-20 13:08:59 1358 3

原创 【打卡】牛客网:BM93 盛水最多的容器

考虑到盛水容器的特殊性。双指针从开始遍历,遍历过程中。不知道原理。

2024-01-15 23:02:20 623

原创 【打卡】牛客网:BM92 最长无重复子数组

BM71 最长上升子序列(一)BM73 最长回文子串BM77 最长的括号子串BM92 最长无重复子数组最长系列问题,基本用动态规划。BM92,用滑动窗口。

2024-01-15 22:41:17 697

原创 【打卡】牛客网:BM91 反转字符串

题目提示使用双指针,需要使用swap()函数。直接使用reverse()函数。

2024-01-15 22:23:10 463

原创 【打卡】牛客网:BM90 最小覆盖子串

BM65 最长公共子序列(二):找二者的相同部分,该部分对于二者可以不连续排列的(但是是有序的)。BM66 最长公共子串找二者的相同部分,该部分对于二者是的。本题:BM90 最小覆盖子串找s中包含t所有字符的部分,该部分对于s是的,对于t可以不连续排列(且可以没有顺序)。

2024-01-15 22:10:19 1222

原创 【打卡】牛客网:BM89 合并区间

逐个遍历,如果前一个右区间大于后一个左区间,就合并。时间复杂度o(n)。忽略了用例给出的数组是无序的,所以还需要对数组进行排序。

2024-01-15 13:29:37 523

原创 【打卡】牛客网:BM88 判断是否为回文字符串

其实不用考虑奇数长度还是偶数长度。

2024-01-15 13:00:33 444

原创 【打卡】牛客网:BM87 合并两个有序的数组

简单粗暴的方法是先合并、再排序。没有技术含量。此外,很容易想到是用归并方法。问题是对A[]从前往后赋值,会覆盖A[]中有用的数值。模板的巧妙之处是,从后往前赋值,完美避开覆盖问题。

2024-01-14 22:23:42 488

原创 【打卡】牛客网:BM86 大数加法

因为是大数,所以不能:将string转为int,进行相加后,再int转为string。而是直接模拟加法过程。

2024-01-14 21:36:43 443

原创 【打卡】牛客网:BM85 验证IP地址

牛客网的测试用例很水,程序错了都能通过9个。(IPv4、IPv6没有分隔符连续的用例、IPv4没有前导“0”的用例)模板的split(),在while循环中,会把截取的字符串去掉,所以每次只需要截取前n个即可。我的split()函数写得稀烂,根据用例调试很久。模板的split()写得好一些。

2024-01-14 18:37:20 1202

原创 【打卡】牛客网:BM84 最长公共前缀

题目要求时间复杂度是o(n*len),说明可以遍历所有的字符。空间复杂度o(1),说明不能用字符串存储公共前缀,所以用下标来记录。调试过程:大概花了20min。我调试前的做法是,在while循环中,从后往前遍历,用的j--。但是没有考虑到第0个字符串长度很小的问题。所以改成了j++。

2024-01-14 00:16:39 443

原创 【打卡】牛客网:BM82 买卖股票的最好时机(三)

最后,取0、dp第2行、dp第4行三者最优值即可。dp第2行和dp第4行表示。需要决定第0天~第i天哪一天买入。进行第一次交易,该天不持有股票的前提下,利益最大是多少。进行第二次交易,该天不持有股票的前提下,利益最大是多少。进行第一次交易,该天持有股票的前提下,利益最大是多少。进行第二次交易,该天持有股票的前提下,利润最大是多少。所以不需要管dp第1行和dp第3行。dp第1行和dp第3行表示。这与BM80的dp第1行是一样的。这与BM80的dp第0行是一样的。所以,分析第i天时,所以,分析第i天时,

2024-01-13 23:36:33 1368

原创 【打卡】牛客网:BM81 买卖股票的最好时机(二)

与BM80 买卖股票的最好时机(一)的区别是,可以多次买,但是卖完才能再买。我的想法是,对于第i天的价格,j从第0天~第i-1天的价格遍历,即,【第j天买入、今天卖出的利润】+【第j-1天的利润】,遍历,并取最大。时间复杂度是o(n^2)。但是,我的想法出现的错误是:若第j-1天持有股,那么第j天不可以买;若不持有股,第j天可以买。我忽略了必须卖出才能买入。所以,必须记录第j-1天的状态是持有股,还是不持有股。但是是难实现的。

2024-01-12 22:38:06 485

原创 【打卡】牛客网:BM83 字符串变形

string s;//字符串//反转//字符数组//翻转此外,'A' 的ASCII码是65,'a' 的ASCII码是97。

2024-01-12 21:02:11 459

原创 【打卡】牛客网:BM80 买卖股票的最好时机(一)

我的想法是,这个题就是找最大差。两个递归是可以解决的,时间复杂度是o(n^2)。但是题目要求时间复杂度是o(n)。(今天的价格和历史最低价的差,prices[i]+dp[i-1][1])模板用了一个两行的dp数组,在一次for循环中,更新两行,是亮点。第二行记录截止到今天的历史最低价。感觉模板没有考虑n=0的情况。(dp[i-1][0])和。(dp[i-1][1])和。假如今天卖的最大利润。

2024-01-10 15:42:48 457

原创 【打卡】牛客网:BM79 打家劫舍(二)

dp.clear()会把dp的size变为0。assign和insert的对比://在pos位置插入n个elem数据,无返回值。//在pos位置插入[beg,end)区间的数据,无返回值dp.assign()赋值,会把dp之前的值覆盖。

2024-01-10 15:08:38 531

原创 【打卡】牛客网:BM78 打家劫舍(一)

【代码】【打卡】牛客网:BM78 打家劫舍(一)

2024-01-10 14:34:26 542

原创 【打卡】牛客网:BM77 最长的括号子串

之前字符串的题有:BM44 有效括号序列用栈的方法BM60 括号生成用递归的方法。

2024-01-10 00:05:19 400

原创 【打卡】牛客网:BM76 正则表达式匹配

此外,pattern还有“.”的匹配方式。“.”必须考虑一个字符,所以与判断字符相同的过程一样,即在上述过程中判断条件中“我习惯把pattern放在列(n2的for循环放在外面),str放在行(n1的for循环放在里面)。模板的是dp[n1][n2],对于每一个str元素,遍历所有pattern元素。然后对于每一个pattern元素,遍历所有str元素。我的是dp[n2][n1]。

2024-01-09 21:32:43 797

原创 【打卡】牛客网:BM75 编辑距离(一)

删除和增加的效果是一样的。所以只考虑删除和替换。以下为我的dp初始化。(最前面的两个字母不同为1,相同为0)删除二者之一,即选择上方或者左方。(全部固定,难想到,难理解)替换,即选择左上角。

2024-01-09 16:00:42 614

原创 【打卡】牛客网:BM74 数字字符串转化成IP地址

看了一下BM22,很陌生,感觉刷题刷了也白刷。的题有点相似,都需要处理前导‘0’。递归时需要注意判断的条件。

2023-12-29 19:48:37 426

原创 【打卡】牛客网:BM73 最长回文子串

【代码】【打卡】牛客网:BM73 最长回文子串。

2023-12-22 21:21:19 385

原创 【打卡】牛客网:BM72 连续子数组的最大和

【代码】【打卡】牛客网:BM72 连续子数组的最大和。

2023-12-22 19:42:35 391

原创 【打卡】牛客网:BM71 最长上升子序列(一)

发现模板的一个错误,arr长度为1时,输出应该是1,但是模板输出的是0。

2023-12-21 23:24:27 469

原创 【打卡】牛客网:BM70 兑换零钱(一)

编程细节写在注释里了。

2023-12-21 22:26:46 368

原创 【打卡】牛客网:BM69 把数字翻译成字符串

【代码】【打卡】牛客网:BM69 把数字翻译成字符串。

2023-12-21 22:13:09 436

原创 【打卡】牛客网:BM68 矩阵的最小路径和

【代码】【打卡】牛客网:BM68 矩阵的最小路径和。

2023-12-20 22:22:06 1045

原创 【打卡】牛客网:BM67 不同路径的数目(一)

【代码】【打卡】牛客网:BM67 不同路径的数目(一)

2023-12-20 21:18:03 369

原创 【打卡】牛客网:BM66 最长公共子串

index是复制的开始位置,length是复制的长度。

2023-12-20 21:12:53 433

原创 【打卡】牛客网:M65 最长公共子序列(二)

通过率(2/7)被bp创到了,再也不自己写了。

2023-12-19 22:38:37 602

原创 【打卡】牛客网:BM64 最小花费爬楼梯

【代码】【打卡】牛客网:BM64 最小花费爬楼梯。

2023-12-11 16:52:05 64

原创 【打卡】牛客网:BM63 跳台阶

【代码】【打卡】牛客网:BM63 跳台阶。

2023-12-11 15:58:19 59

原创 【打卡】牛客网:BM62 斐波那契数列

【代码】【打卡】牛客网:BM62 斐波那契数列。

2023-12-11 15:56:05 61

原创 【打卡】牛客网:BM39 序列化二叉树(调试很久)

资料:2 string用到的一些函数:// string转c的字符串数组// int转stringchar * 的长度比string多一个‘\0’,则为:注:本题需要判断最后一个‘\0’,所以模板用第二种方法。本题没涉及到,本题是char*转TreeNode4 C++ 单引号和双引号的区别:单引号是char字符型, 双引号是string字符串型5 &&在变量前是取地址,在定义函数里是引用传递6 string、char*、char**的区别,以及他们++表示的具体含义。

2023-12-10 22:43:37 77

原创 【打卡】牛客网:BM61 矩阵最长递增路径

1.dfs中,虽然num不需要变化,但是在调用函数时加上&,可以防止超时。

2023-12-10 21:17:07 191

原创 【打卡】牛客网:BM60 括号生成

size()//获取字符串长度insert()//插入字符串append()//插入字符串erase()//删除任意字符,时间复杂度O(n),n为字符串长度substr()//截取字符字串back()//获取最后一个字符pop_back()//删除最后一个字符,时间复杂度O(1)empty()//判断是否为空clear()//清空字符串。

2023-12-01 11:21:56 171

原创 【打卡】牛客网:BM59 N皇后问题

采用for循环里push的方法,结果会多出n个重复的策略方案。因为在for循环里push,需要在下一次递归里面判断长度和放入res,最终导致:倒数第二层已经是我们需要的答案了,但是在for循环会重复n次递归,在最后一层判断长度和放入res。①想自己定义结构体node,发现find函数太麻烦。看了眼模板,就用一个vector记录行号就行,索引自然而然就是列号。for循环外面push,就能解决重复答案的问题。还在想这和模拟差不多。后来才意识到,还得是递归啊。②想用for循环写(未通过)

2023-11-21 23:11:59 226

空空如也

空空如也

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

TA关注的人

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