自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 算法训练营第二十九天 | 动态规划(二)

原文链接:https://programmercarl.com/0063.%E4%B8%8D%E5%90%8C%E8%B7%AF%E5%BE%84II.html。移动到当前位置,可以由当前位置的上面的位置向下移动,也可以从左面的位置向右移动。移动到当前位置,可以由当前位置的上面的位置向下移动,也可以从左面的位置向右移动。由于第一行的所有位置,只能是向右移动而来,所以dp数组中的第一行都要初始化为。障碍物的位置我们是无法到达的,所以障碍物位置我们要初始化为。,因为根据移动的规则,后续的位置都是无法到达的。

2025-03-31 16:06:09 942

原创 算法训练营第二十八天 | 动态规划(一)

原文链接:https://programmercarl.com/0746.%E4%BD%BF%E7%94%A8%E6%9C%80%E5%B0%8F%E8%8A%B1%E8%B4%B9%E7%88%AC%E6%A5%BC%E6%A2%AF.html。原文链接:https://programmercarl.com/0509.%E6%96%90%E6%B3%A2%E9%82%A3%E5%A5%91%E6%95%B0.html。递推公式是动态规划的核心,它描述了如何从已知的子问题的解推导出当前子问题的解。

2025-03-29 15:40:25 980

原创 算法训练营第二十七天 | 贪心算法(五)

的最大单调递增数字,关键在于从右往左检查数字的每一位,一旦发现某一位数字比它右边相邻的数字大,就需要对该位数字进行调整,同时为保证得到的结果是最大的,要将调整位之后的所有数字都设为。从右往左遍历的原因是,当发现某一位数字不符合单调递增的条件时,需要对该位及其右边的数字进行调整,从右往左遍历能保证我们优先处理低位数字,避免高位数字调整后对低位数字产生影响。在遍历过程中,针对每一位数字,检查它是否比其右边相邻的数字大。的最大单调递增数字,需要让调整位之后的数字尽可能大,而每一位最大的数字就是。

2025-03-28 11:09:48 890

原创 算法训练营第二十六天 | 贪心算法(四)

原文链接:https://programmercarl.com/0452.%E7%94%A8%E6%9C%80%E5%B0%91%E6%95%B0%E9%87%8F%E7%9A%84%E7%AE%AD%E5%BC%95%E7%88%86%E6%B0%94%E7%90%83.html。在遍历的过程中相当于是要找每一个字母的边界,如果找到之前遍历过的所有字母的最远边界,说明这个边界就是分割点了。的时候,我们才包含了所有可能出现的字符,并且下一个区间不会再包含重复的字符。弓箭一旦被射出之后,可以无限地前进。

2025-03-27 19:35:48 680

转载 算法训练营第二十五天 | 贪心算法(三)

原文链接:https://programmercarl.com/0406.%E6%A0%B9%E6%8D%AE%E8%BA%AB%E9%AB%98%E9%87%8D%E5%BB%BA%E9%98%9F%E5%88%97.html。原文链接:https://programmercarl.com/0860.%E6%9F%A0%E6%AA%AC%E6%B0%B4%E6%89%BE%E9%9B%B6.html。这道题目一定是要确定一边之后,再确定另一边,例如比较每一个孩子的左边,然后再比较右边,

2025-03-26 19:56:31 14

原创 算法训练营第二十四天 | 贪心算法(二)

设置一个。

2025-03-25 13:03:11 720

原创 算法训练营第二十三天 | 贪心算法(一)

原文链接:https://programmercarl.com/0455.%E5%88%86%E5%8F%91%E9%A5%BC%E5%B9%B2.html#%E7%AE%97%E6%B3%95%E5%85%AC%E5%BC%80%E8%AF%BE。:这题的贪心思想在于,当我们的连续和为负数时,它对后续的和起到的是副作用(越加越小),所以我们直接抛弃这段子数组,从新的结点开始。对于最后一个元素,根据题目描述它是一定会形成一个摆动的,所以我们在循环的时候就不遍历最后一个元素,并且设置初始结果的值为。

2025-03-24 16:36:49 1047

原创 算法训练营第二十二天 | 回溯算法(四)

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考。

2025-03-23 21:04:55 772

原创 算法训练营第二十一天 | 回溯算法(三)

在回溯过程中,如果当前元素和前一个元素相同,并且不是在处理该元素的第一个出现位置(即 i > start_index),就跳过这个元素,以此来避免生成重复的子集。原文链接:https://programmercarl.com/0093.%E5%A4%8D%E5%8E%9FIP%E5%9C%B0%E5%9D%80.html。LeetCode 第 90 题 “子集 II” 与第 78 题 “子集” 的区别在于,给定的数组中可能包含重复元素,要求返回的子集不能有重复。时,说明我们已经得到了完整的IP地址。

2025-03-23 10:08:58 941

原创 算法训练营第二十天 | 回溯算法(二)

原文链接:https://programmercarl.com/0131.%E5%88%86%E5%89%B2%E5%9B%9E%E6%96%87%E4%B8%B2.html#%E7%AE%97%E6%B3%95%E5%85%AC%E5%BC%80%E8%AF%BE。这意味着,以当前这个数字为起始位置开始遍历,下次遍历的时候,还是以这个数字为起始位置,这样就包含了重复元素。可以发现,切割问题的回溯搜索的过程和组合问题的回溯搜索的过程是差不多的。本题的重点在于,每个数字只能使用一次,所以就需要一个去重操作。

2025-03-22 17:51:47 866

原创 算法训练营第十九天 | 回溯算法(一)

原文链接:https://programmercarl.com/0017.%E7%94%B5%E8%AF%9D%E5%8F%B7%E7%A0%81%E7%9A%84%E5%AD%97%E6%AF%8D%E7%BB%84%E5%90%88.html。第一次取1,集合变为2,3,4 ,因为k为2,我们只需要再取一个数就可以了,分别取2,3,4,得到集合[1,2] [1,3] [1,4],以此类推。在上面我们提到,回溯法一般是在集合中递归搜索,集合的大小构成了树的宽度,递归的深度构成的树的深度。

2025-03-22 17:05:13 1043

原创 算法训练营第十八天 | 二叉树(八)

二叉树。

2025-03-19 19:34:28 84

原创 算法训练营第十七天 | 二叉树(七)

二叉树。

2025-03-19 19:33:35 98

原创 算法训练营第十六天 | 二叉树(六)

二叉树。

2025-03-19 19:32:58 72

原创 算法训练营第十五天 | 二叉树(五)

二叉树。

2025-03-19 19:32:08 62

原创 算法训练营第十四天 |二叉树(四)

第一步:如果数组大小为零的话,说明是空节点了。第二步:如果不为空,那么取后序数组最后一个元素作为节点元素。第三步:找到后序数组最后一个元素在中序数组的位置,作为切割点第四步:切割中序数组,切成中序左数组和中序右数组 (顺序别搞反了,一定是先切中序数组)第五步:切割后序数组,切成后序左数组和后序右数组,(根据中序左右数组的长度来切割)第六步:递归处理左区间和右区间。

2025-03-14 09:57:11 1004

原创 算法训练营第十三天 | 二叉树(三)

原文链接:https://programmercarl.com/0222.%E5%AE%8C%E5%85%A8%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E8%8A%82%E7%82%B9%E4%B8%AA%E6%95%B0.html。原文链接:https://programmercarl.com/0257.%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E6%89%80%E6%9C%89%E8%B7%AF%E5%BE%84.html。

2025-03-12 17:37:55 602

原创 算法训练营第十二天 | 二叉树(二)

原文链接:https://programmercarl.com/0111.%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E6%9C%80%E5%B0%8F%E6%B7%B1%E5%BA%A6.html#%E7%AE%97%E6%B3%95%E5%85%AC%E5%BC%80%E8%AF%BE。递归遍历的逻辑为,继续对左结点的左子节点和右子节点的右节点进行判断(外侧),对左节点的右子节点和右节点的左子节点进行判断(内侧)。(真假不做判断,全当一个乐子哈)。

2025-03-11 17:58:39 941

原创 算法训练营第十一天 | 二叉树(一)

下面是在 Python 中使用引用之引用来构建二叉树。# 定义二叉树结点。

2025-03-11 09:25:39 602

原创 算法训练营第十天 | 栈与队列(二)

原文链接:https://programmercarl.com/0150.%E9%80%86%E6%B3%A2%E5%85%B0%E8%A1%A8%E8%BE%BE%E5%BC%8F%E6%B1%82%E5%80%BC.html#%E7%AE%97%E6%B3%95%E5%85%AC%E5%BC%80%E8%AF%BE。在排序的过程中,我们使用优先级队列,key为数字,value为出现的次数,最后返回即可。的滑动窗口从数组的最左侧移动到数组的最右侧。的队列,不断的进行出队和入队操作,同时记录队中的最大值。

2025-03-10 22:59:10 743

原创 算法训练营第九天 | 栈与队列(一)

原文链接:https://programmercarl.com/1047.%E5%88%A0%E9%99%A4%E5%AD%97%E7%AC%A6%E4%B8%B2%E4%B8%AD%E7%9A%84%E6%89%80%E6%9C%89%E7%9B%B8%E9%82%BB%E9%87%8D%E5%A4%8D%E9%A1%B9.html#%E7%AE%97%E6%B3%95%E5%85%AC%E5%BC%80%E8%AF%BE。,重复项删除操作会选择两个相邻且相同的字母,并删除它们。

2025-03-07 20:55:54 546

原创 算法训练营第八天 | 字符串(二)

kmp算法

2025-03-07 20:03:56 103

原创 算法训练营第七天 | 字符串(一)

原文链接:https://programmercarl.com/0541.%E5%8F%8D%E8%BD%AC%E5%AD%97%E7%AC%A6%E4%B8%B2II.html#%E7%AE%97%E6%B3%95%E5%85%AC%E5%BC%80%E8%AF%BE。关于使用库函数,如果在这道题中,程序的关键性逻辑可以由库函数调用直接完成,那么我们解题的过程中就不要使用库函数了,避免我们在面试中成为调包侠。每隔2k个字符的前k的字符,写了一堆逻辑代码或者再搞一个计数器,来统计2k,再统计前k个字符。

2025-03-05 13:14:16 891

原创 算法训练营第六天 | 哈希表(下)

原文链接:https://programmercarl.com/0383.%E8%B5%8E%E9%87%91%E4%BF%A1.html#%E5%85%B6%E4%BB%96%E8%AF%AD%E8%A8%80%E7%89%88%E6%9C%AC。原文链接:https://programmercarl.com/0015.%E4%B8%89%E6%95%B0%E4%B9%8B%E5%92%8C.html#%E7%AE%97%E6%B3%95%E5%85%AC%E5%BC%80%E8%AF%BE。

2025-03-04 19:40:08 742

原创 算法训练营第五天 | 哈希表(上)

哈希表(Hash Table)是一种高效的数据结构,用于存储键值对(key-value pairs)。它通过哈希函数将键映射到表中的特定位置,从而实现快速的数据插入、删除和查找操作。

2025-03-03 22:32:37 638

原创 算法训练营第四天 | 链表(下)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档。

2025-03-03 20:38:59 762

原创 算法训练营第三天 |链表(上)

链表是一种通过指针串联在一起的线性结构,每一个节点由两部分组成,一个是数据域一个是指针域(存放指向下一个节点的指针),最后一个节点的指针域指向null(空指针的意思)。在Python中,通常使用引用之引用来构建结点。在创建链表时,有时会为了计算方便,会在链表的开头创建一个虚拟结点作为头结点,这种结点称之为哨兵结点。dummy_head = ListNode(next=head) # 这里head为列表的真实结点本体并不是很难的题目,但是细节很多。在操作之前要对索引的合法性进行判断注意循环的次数。

2025-03-02 11:07:19 738

原创 算法训练营第二天 |数组(下)

这里的区间定义为,左闭由开。即,每个边的定义为,第一个元素至倒数第二个元素,最后一个元素为下一条边的初始元素。

2025-02-28 22:43:54 542

原创 算法训练营第一天 |数组(上)

数组是非常基础的数据结构,在面试中,考察数组的题目一般在思维上都不难,主要是考察对代码的掌控能力。数组之于数据结构,就像abandon之于四级考试。

2025-02-28 11:05:22 196

空空如也

空空如也

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

TA关注的人

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