自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LeetCode 139. 单词拆分

【代码】LeetCode 139. 单词拆分。

2024-03-20 10:43:06 165

原创 LeetCode 739. 每日温度

但我下面这个做法好像也可以,而且好像还挺快。就是反向遍历,然后根据第i+1个元素的值以及第i+1个元素的答案的值来确定当前的答案。但是单调栈显然才是考点,更通用一些。

2024-03-19 15:56:57 300

原创 LeetCode 394. 字符串解码

递归地识别这个模式:数字[子模式]...;但注意,数字可能没有,当没有数字的时候中括号也没有,出现这种情况的时候直接将这部分加入结果中,然后继续识别上面的模式。394. 字符串解码。

2024-03-19 15:02:33 161

原创 LeetCode 279. 完全平方数

用记忆化递归结果超时了。看了一下题解发现其实上式的i完全可以只考虑是完全平方数的情况。我还是用的记忆化递归,因为个人感觉记忆化递归比动态规划更通用一些,而且写起来更简单,虽然效率可能会差一些。279. 完全平方数。

2024-03-19 14:18:27 344 1

原创 LeetCode 1793. 好子数组的最大分数

1793. 好子数组的最大分数。俺也只能写写简单的困难题了。双指针,哪个大就往哪边挪动。

2024-03-19 13:30:22 139

原创 LeetCode 2312. 卖木头块

2312. 卖木头块。

2024-03-16 13:57:44 198

原创 LeetCode 2684. 矩阵中移动的最大次数

这题刚看到想到的就是用深度优先遍历来做,结果超时了。仔细一看发现在移动单元格的时候永远都是向下的,也就是说不可能走到已经走过的单元格上。那么我们就可以给深度优先搜索加上一个备忘录,记录已经求解的子问题。此外甚至可以用动态规划来求解。下面是带备忘录的递归(记忆化递归)的求解方法。2684. 矩阵中移动的最大次数。

2024-03-16 11:38:54 470

原创 LeetCode 131. 分割回文串

递归回溯+回文串判断。131. 分割回文串。

2024-03-16 00:14:00 174

原创 LeetCode 208. 实现 Trie (前缀树)

208. 实现 Trie (前缀树)前缀树确实是树,但操作起来更像链表。

2024-03-15 13:55:10 251

原创 LeetCode 207. 课程表

【代码】LeetCode 207. 课程表。

2024-03-14 23:50:07 138

原创 LeetCode 994. 腐烂的橘子

广度优先遍历就完事儿~,最后的判断还有没有好橘子还能优化下,但问题不大。994. 腐烂的橘子。

2024-03-14 15:45:27 201

原创 LeetCode 437. 路径总和 III

简而言之就是深度优先遍历过程中记录每个前缀和出现的个数,如果当前和减去target的值等于某个前缀和,那么这两个节点之间的和为target。节点访问完毕记得要回溯。又是一个将连续的和转化为两个前缀和相减的题目,可以参考。

2024-03-14 11:12:30 145

原创 LeetCode 记录两个关于前缀的数组题

优化:对于每个元素之前和之后的最小元素,我们可以以O(N)的时间先求出来,保存为前缀和后缀数组,数组中记录了该下标的前缀中的最小元素和后缀中的最小元素。把连续元素的和转化成了两个前缀和相减:遍历过程中,如果当前下标的前缀和减去k的值等于之前的某个下标前缀和,说明这两个下标之间的部分的和等于k。这题如果暴力的话就是,遍历过程中,对每个元素求前缀中最小的元素,求后缀中最小的元素,然后加起来。最后选一个最小的和即可。

2024-03-14 10:37:34 207

原创 LeetCode 2789. 合并后数组中的最大元素

这题如果正向遍历就会很乱,因为前面的元素合并之后值增加了,可能会变得比后面的元素更大,这样就会影响到后面的合并,因此这样的合并是有后效性的。所以可以选择反向合并,后面的元素合并之后值只会变大,并不会影响前面元素的合并。给一个粗糙的代码,这个long long数组应该还能优化,但也能过。

2024-03-14 10:12:35 139

原创 LeetCode 146. LRU 缓存

存和取都需要O(1),原本可以用哈希表实现,但是题目还有个条件,在容量超过capacity的时候删掉最久不用的元素,因此增加一个双向链表,在数据被get和put的时候均将对应的元素移动到表尾。这样越靠近表尾越近被使用过,每次需要删除最久未使用的就删掉表头的元素即可。

2024-03-12 17:05:59 190

原创 PTA L2-014 列车调度

【代码】PTA L2-014 列车调度。

2024-03-09 23:44:37 205

原创 <PTA> L2-001 紧急救援

Dijkstra过程中动态记录最短路径数量ways和最大资源数resources。

2024-03-05 13:52:19 174

原创 Beam Search源码理解

本文的beam search源码来自:CodeBERT/model.py at master · microsoft/CodeBERT (github.com)https://github.com/microsoft/CodeBERT/blob/master/CodeBERT/code2nl/model.py理解过程中加入了注释:class Beam(object): def __init__(self, size,sos,eos): self.size = size

2022-04-19 14:27:18 652 1

原创 PAT (Basic Level) Practice 1017 A除以B

题目详情 (pintia.cn)https://pintia.cn/problem-sets/994805260223102976/problems/994805305181847552模拟手动除法运算过程:#include <iostream>using namespace std;int main(){ string a; int b; cin >> a >> b; int mod = 0; for (int i=0

2021-09-16 13:46:05 80

原创 PAT (Basic Level) Practice 1015 德才论

题目详情 (pintia.cn)https://pintia.cn/problem-sets/994805260223102976/problems/994805307551629312#include <iostream>#include <algorithm>#include <vector>using namespace std;typedef struct student{ int ID, morality, ability;} stud

2021-09-15 23:41:19 108

原创 PAT (Basic Level) Practice 1013 数素数

题目:题目详情 (pintia.cn)https://pintia.cn/problem-sets/994805260223102976/problems/994805309963354112埃筛:#include <iostream>#include <memory.h>#include <vector>#define MaxSize 110000using namespace std;int main(){ bool primes[Ma

2021-09-15 13:08:29 115

原创 PAT (Advanced Level) Practice 1003 Emergency

菜鸡一枚,第一次写这种题,写了好久。题目如下。题目详情 (pintia.cn)https://pintia.cn/problem-sets/994805342720868352/problems/994805523835109376贴代码。#include <iostream>#include <vector>#define INT_MAX 0x7fffffffusing namespace std;int main(){ //输入 int n,

2021-09-14 17:38:04 157

原创 Functional Code Clone Detection with Syntax and Semantics Fusion Learning论文总结

一、任务简介代码克隆就是指源码中两段代码非常相似的现象。代码克隆检测有四个层次: 1.代码语句完全相同; 2.在1的基础上改变一些变量名、类型名或者是函数名; 3.在2的基础上增加或者减少一些语句; 4.功能相似,代码语句有很大差别。一般有四种类型检测方法,基于文本和基于记号的方法一般用于对1.2类型的检测,基于语法的方法一般可以用于对1.2.3类型的检测以及部分4类型的检测。基于语义的...

2021-08-27 18:26:08 932 3

空空如也

空空如也

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

TA关注的人

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