自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 回溯算法02

树层去重:前面使用过的元素不能再用了,不然会重复。设置uesd标记是否用过。区别树枝去重:两个数值相同的元素可以放入集合中。

2025-07-31 12:05:15 266

原创 回溯法理论基础01

优化for循环:将i<=n替换为i <= n - (k - path.size()) + 1。

2025-07-31 09:54:56 251

原创 二叉树part07

如果 cur->val 小于 p->val,同时 cur->val 小于 q->val,那么就应该向右遍历(目标区间在右子树)。本题就是标准的搜索一条边的写法,遇到递归函数的返回值,如果不为空,立刻返回。

2025-07-29 11:50:50 330

原创 二叉树part06

只需要遍历一次,用result.clear()刷新一次,就能直接用max=count。此题要自底向上查找,回溯是自底向上。用双指针 中序遍历 求差值。

2025-07-28 09:38:50 225

原创 二叉树 part05

1.确定参数和返回值 数组nums,二叉树TreeNode*2.终止条件 数组长度等于1返回根节点3.单层递归逻辑 先找最大值,左子树,右子树。

2025-07-27 18:21:28 219

原创 二叉树 part04

参数必须有要遍历的树的根节点,还有就是一个int型的变量用来记录最长深度。本题还需要类里的两个全局变量,maxDepth用来记录最大深度,result记录最大深度最左节点的数值。思路:传入参数时传目标值count,遍历一个节点减去一个值,看最后到叶子节点是否等于0.当遇到叶子节点的时候,就需要统计一下最大的深度了,所以需要遇到叶子节点来更新最大深度。第四步:切割中序数组,切成中序左数组和中序右数组 (顺序别搞反了,一定是先切中序数组)第五步:切割后序数组,切成后序左数组和后序右数组。

2025-07-27 17:14:18 248

原创 二叉树03 |

完全二叉树:满二叉树( 2^树深度 - 1) 不是满二叉树。用后序遍历(左右中),到中间节点才能算出左右节点的。3.左子树左叶子节点+右子树左叶子节点in。2.遍历到空节点return0。有递归一次就有回溯一次。

2025-07-27 09:39:12 201

原创 二叉树02 | 226.翻转二叉树

226.翻转二叉树。

2025-07-24 10:36:32 315

原创 二叉树01 |二叉树理论基础 |递归遍历 |迭代遍历 |统一迭代 |层序遍历

int val;

2025-07-23 16:36:29 320

原创 字符串专题 |344.反转字符串 |541. 反转字符串II | 卡码网:54.替换数字 |151.翻转字符串里的单词

关键是移除多余空格:和移除元素像,移除空格。再在除了第一个单词外的每个单词前面加上一个空格。用reverse函数进行反转:reserve(s,i,i+k),默认左闭右开取不到i+k。思路:双指针法:一个在头,一个在尾,两两交换头尾元素,直到中间。先将数组扩容,再从后往前填充,(从前往后填充是O(n*2)):先将整个字符串反转,再已n为界限,反转两个子串。28. 实现 strStr() (本题可以跳过)for中的i=i+(2*k),2k为一个移动。同上,多了一个规则:计数到2k时反转k。

2025-07-22 10:45:16 261

原创 栈与队列专题 |232.用栈实现队列 |225. 用队列实现栈 |20. 有效的括号 |1047. 删除字符串中的所有相邻重复项 |150. 逆波兰表达式求值 |239. 滑动窗口最大值

三个最为普遍的STL版本:HP STL P.J.Plauger STL SGI STL。所以STL中栈往往不被归类为容器,而被归类为container adapter(容器适配器)。思路:栈中非空并且不相等push 相等pop,然后把栈转为字符串。遇到左括号把对应的右括号放进栈里,然后比较栈内元素是否和右括号匹配。用一个队列实现栈:将size-1个元素push进队列中,再弹出。思路:再用一个stackout的栈就能实现队列的先入先出。:始终保持单调递减,则front为最大元素。

2025-07-21 17:25:09 327

原创 代码随想录07 |454.四数相加II |383. 赎金信 |15.三数之和 |18.四数之和

用哈希算法算:应该使用map(每一个数能取得数值范围大,并且不只有一个关键字)先把A+B的和存在map里,再在C+D中找0-(c+d)在map中是否存在。用双指针法,先对数组进行排序,定一个int i,再在头和尾定义两个指针left,right。right去重:while(right>left&&nums[right]==nums[right-1]) right--;,用数组做哈希表,先遍历一个字符串,数组++,再遍历另一个字符串,数组--,看减完结果是否等于0。剪枝操作比三数之和要额外加条件:逻辑变成。

2025-07-15 12:00:35 199

原创 代码随想录06|哈希表 |242.有效的字母异位词 |349. 两个数组的交集 |202. 快乐数 |1. 两数之和

同上一道题,先把一个数组的元素放进哈希表中,再用第二个数组去查询,把有相同元素的数字放进result数组中。先让第一个字符串往此哈希表中++,再让第二个字符串往里--,看此表是否为0,若为0则这两个字符串相等。思路:判断两个字符串是否是字母异位词,先看能不能用哈希表做(先看数组再看set和map)思路:哈希表:查询一个集合里是否存在一个数用哈希表,数据量小用数组,量大用set。,使用map的unordered_map(查询增删效率最高),思路:如果一个数陷入循环,则不是快乐树。查找元素,用哈希表的。

2025-07-14 12:13:45 451

原创 代码随想录04 | 24. 两两交换链表中的节点 |19.删除链表的倒数第N个节点 |面试题02.07链表相交 | 142.环形链表II

本题先找到该倒数第N个节点,再删除,难点就是找节点。

2025-07-13 16:20:35 304

原创 代码随想录03链表|203.移除链表元素 | 707.设计链表 |206.反转链表

【代码】代码随想录03链表|203.移除链表元素 |206.反转链表。

2025-07-13 11:50:19 332

原创 代码随想录第二天|Leecode209.长度最小的子数组 59.螺旋矩阵Ⅱ 58.区间和 44. 开发商购买土地

运用循环不变量原则:每次循环的边界处理条件都相同(每条边都坚持一致的左闭右开或者左开右闭的原则)思想是重复利用计算过的子数组之和,从而降低区间查询需要累加计算的次数。(sum>=s) 为了维持窗口中指针的移动,不是只移动一次。注:1.快指针代表数组的终点, 2.注:offset要从1开始。同上·,也用前缀和。

2025-07-12 10:54:12 157

原创 代码随想录第一天|LeeCode704.二分查找 27.移除元素 977.有序数组的平方

数组中的移除元素 (数组是连续的 ,并且数组只能覆盖不能删除)所以移除元素就是把后面的元素挨个往前移一位。寻址操作完全交给虚拟机。

2025-07-11 11:26:03 165

原创 深度学习入门(鱼书)

但是通过反转损失函数的符号,求最小值的问题和求最大值的问题会变成相同的问题,因此“下降”还是“上升”的差异本质上并不重要。链式法则是关于复合函数的导数的性质,定义如下:如果某个函数由复合函数表示,则该复合函数的导数可以用构成复合函数的各个函数的导数的乘积表示。损失函数是表示神经网络性能的“恶劣程度”的指标,即当前的神经网络对监督数据在多大程度上不拟合,在多大程度上不一致。函数, 如图4-4所示,不仅函数的输出(竖轴的值)是连续变化的,曲线的斜率(导数)也是连续变化的。梯度表示损失函数的值减小最多的方向。

2025-03-08 16:12:34 1707

原创 深度学习入门(鱼书)1~3章

和求解机器学习问题的步骤(分成学习和推理两个阶段进行)一样,使用神经网络解决问题时,也需要首先使用训练数据(学习数据)进行权重参数的学习;机器学习则是将这个决定参数值的工作交给计算机进行,“学习”是确定合适的参数的过程,人要做的是思考感知机的构造(模型)。和数组的算术运算一样,矩阵的算术运算也可以在相同形状的矩阵间以对应元素的方式进行。对NumPy数组进行不等号运算后,数组的各个元素都会进行不等号运算, 生成一个布尔型数组。是机器学习领域最有名的数据集之一,被应用于从简单的实验到发表的论文研究等各种场合。

2025-03-05 22:35:44 1227

原创 Python入门

1.在上述官网选择对应的安装包下载(Windows x64)运行后,按照引导安装安装成功后,在左侧“extensions”搜索Chinese语言包 点击install,按照提示重启VSCode在左侧“扩展”搜索python,安装python扩展。2.创建虚拟环境:conda create -n 虚拟环境名字 python=版本。1.原因:可以用conda管理不同的Python环境。3.进入虚拟环境:conda activate。2.在code写代码时右下角切换虚拟环境。

2024-07-17 23:53:19 453 1

空空如也

空空如也

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

TA关注的人

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