自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Node.js下载、管理和应用

Node.js使用

2024-11-01 18:34:41 473 1

原创 LeetCode热题100刷题笔记(上)

LeetCode刷题笔记和代码

2024-11-01 17:35:08 874

原创 代码随想录

代码随想录——数组篇代码随想录——链表篇代码随想录——哈希表代码随想录——字符串代码随想录——栈与队列代码随想录——二叉树代码随想录——回溯算法代码随想录——贪心算法代码随想录——动态规划代码随想录——单调栈代码随想录——图论

2024-08-29 15:06:50 243

原创 代码随想录——字符串

如果s.size可以整除(s.size - next[size - 1]),那么字符串s由重复子字符串构成,该重复子字符串即为s的前(s.size - next[size - 1])个字母。当匹配到f时,f和b不匹配了,这时要找到与aabaa的后缀的相等前缀的后面一个字符开始匹配,因为aabaa的最长相等前后缀为2,因此要从下标为2的字符开始匹配。计算next[size - 1]的值,即字符串最后一个字母的最长相等前后缀长度。②next不后移,在遇到冲突后,找冲突字母前一个字母,对应的前缀表长度,回退。

2024-08-29 15:00:56 1761

原创 代码随想录——栈与队列

③每次滑动窗口后移,如果需要弹出的元素和队头元素相同,则pop队头元素,否则就不要pop(之前因为太小已经被pop出去了),只需要处理后面待push的元素,重复过程①②。如果用大顶堆,每次pop出的元素为堆顶的元素,这是最大的元素,等到数组所有元素遍历过后,大顶堆里留下的是前k个低频元素,与题意想左。用栈解决,当遇到运算符,将栈顶的元素pop出来两个,按照运算符进行运算,直到所有的元素都被遍历过,输出栈顶元素,即为运算结果。②如果push入的元素前面的元素都比该元素大,则将该元素直接push进队列。

2024-08-29 14:59:52 722

原创 代码随想录——图论

节点1 指向 节点3 和 节点5节点2 指向 节点4、节点3、节点5节点3 指向 节点4节点4指向节点1搜索方向,是认准一个方向搜,直到碰壁之后再换方向换方向是撤销原路径,改为节点链接的下一个路径,回溯的过程实现方法:递归和回溯广搜的搜索方式就适合于解决两个点之间的最短路径问题。因为广搜是从起点出发,以起始点为中心一圈一圈进行搜索,一旦遇到终点,记录之前走过的节点就是一条最短路。用栈和队列都可以。

2024-08-29 14:57:56 769

原创 代码随想录——贪心算法

此时前面出现过所有字母,最远也就到这个边界了。(这个区间必须包含之前遍历过的字母的最远边界,因为同一个字母只能出现在一个区间内,而要这个区间划分数最多,所以就去这个最远边界,这里要注意最远边界是随着字母的遍历动态变化的)。那么从后向前遍历,遇到strNum[i - 1] > strNum[i]的情况,让strNum[i - 1]减一,就可以重复利用上次比较得出的结果。尝试一: 按照k从小到大排序,对于k相同的,将h较小的排在前面(因为k的含义是,前面有k个比h大的,所以h较大的排在后面,对k没有影响)。

2024-08-29 14:53:50 1059

原创 代码随想录——数组篇

循环不变量:对每条边的处理规则不变 (左闭右开 [ )/ 左闭右闭 [ ])快指针(fast):寻找旧数组中需要删除的元素,将需要保留的元素赋值给新数组。总结:根据不同的区间定义,left和right的边界取值需要注意。当发现起始和终止元素中的元素和大于s的时候,移动起始位置,缩小区间。erase为一个O(N)的函数,删掉一个元素,后面所有元素前移。慢指针(slow):新数组的当前下标(在旧数组基础上更新)双指针方法,由两边向中间推进,新的数组由大向小填入。法二:双指针(O(N))(左指针)(右指针)

2024-08-29 14:50:45 442

原创 代码随想录——链表篇

链表的定义。

2024-08-29 14:50:08 342

原创 代码随想录——回溯算法

组合和排列的区别:组合不强调元素的顺序,而排列强调元素顺序回溯法解决的问题都可以抽象为树形结构,。回溯法模板:回溯函数模板返回值及参数回溯函数终止条件回溯搜索的遍历过程for循环就是遍历集合区间,可以理解一个节点有多少个孩子,这个for循环就执行多少次。,这样就把这棵树全遍历完了,一般来说,搜索叶子节点就是找的其中一个结果了。

2024-08-29 14:49:08 858

原创 代码随想录——哈希表

std::unordered_set底层实现为哈希表,std::set 和std::multiset 的底层实现是红黑树,红黑树是一种平衡二叉搜索树,所以key值是有序的,但key不可以修改,改动key值会导致整棵树的错乱,所以只能删除和增加。虽然std::set、std::multiset 的底层实现是红黑树,不是哈希表,std::set、std::multiset 使用红黑树来索引和存储,不过给我们的使用方式,还是。再遍历C、D数组,计算c+d的值,再查找哈希表中有没有需要的值,即-(c+d)的数值。

2024-08-29 14:44:48 933

原创 代码随想录——二叉树

链表存储。

2024-08-29 14:43:43 868

原创 代码随想录——动态规划

每一次抵消,实际上都是[a, b, …]变成[a - b, …]或[b-a, …]的过程,最终也必然会得出类似 (b - a) - ( c - d) 这种计算式,展平得 -a + b - c + d = (b+d)-(a+c)这种计算式,b+d >= sum/2 >= a+c,需要做的就是找出a+c不大于sum/2时的最大值,经典背包问题类比上一道分割等和子集public:i ++){i ++){j --){

2024-08-29 14:40:02 1881

原创 代码随想录——单调栈

通常是一维数组,要寻找任一个元素的右边或者左边第一个比自己大或者小的元素的位置,此时我们就要想到可以用单调栈了。用一个栈来记录我们遍历过的元素单调栈里只需要存放元素的下标i就可以了,如果需要使用对应的元素,直接T[i]就可以获取单调栈记录遍历过的元素当前遍历到的元素:T[i] 栈顶元素T[st.top()](二)下一个更大元素I(三)下一个更大元素II循环队列,在for循环中模拟两个循环,对i取模(四)接雨水主要就是三种情况情况一:当前遍历的元素(柱子)高度小于栈顶元素的高度 h

2024-08-29 14:31:47 487

原创 Android开发——Bitmap图像效果

介绍Bitmap图像处理基本原理,整理了几种具体实现案例。

2023-12-23 23:37:36 2243 2

空空如也

空空如也

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

TA关注的人

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