自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 代码随想录算法训练营day24 | 回溯算法理论基础、77. 组合

回溯法也可以叫做回溯搜索法,它是一种搜索的方式。回溯是递归的副产品,只要有递归就会有回溯。回溯的核心思想其实还是暴力解题,唯一能优化的措施是进行剪枝,以减少工作量。

2024-01-21 15:46:35 360 1

原创 代码随想录算法训练营day15 | 102.层序遍历 、226.翻转二叉树 、101.对称二叉树

'NoneType' object has no attribute 'val' ^^^^^^^ level.append(cur.val) 这是因为没有在最开始考虑到二叉树为空的情况。原代码版本上每层只放最右的节点(level的最后一个数):result.append(level[-1])先独立做题,然后看视频讲解,然后看文章讲解,然后再重新做一遍题,把题目AC,最后整理成今日当天的博客。遍历的过程中去翻转每一个节点的左右孩子就可以达到整体翻转的效果。,这是不必要的,因为在创建。

2024-01-10 23:22:20 835

原创 代码随想录算法训练营day14 | 二叉树的理论基础、递归遍历、迭代遍历(144.二叉树的前序遍历、145.二叉树的后序遍历、94.二叉树的中序遍历)

文章链接:代码随想录 (programmercarl.com)在我们解题过程中二叉树有两种主要的形式:满二叉树和完全二叉树。满二叉树:如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树。这棵二叉树为满二叉树,也可以说深度为k,有2^k-1个节点的二叉树。 完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。(底层的节点连续) 前面介绍的树,都没有数值的,而二叉搜索树是有数

2024-01-09 20:52:27 783 1

原创 代码随想录算法训练营day13 | 239. 滑动窗口最大值、347.前 K 个高频元素

栈和队列这里代码开始有点复杂了,第一轮学习主要听懂思路即可,可能需要我再学一下数据结构以后再说熟练敲出代码的事情。路漫漫其修远兮。

2024-01-08 20:17:55 1390 1

原创 代码随想录算法训练营day11 | 20. 有效的括号、1047. 删除字符串中的所有相邻重复项、150. 逆波兰表达式求值

其中包含四个键值对,每个键表示一个运算符,而对应的值则是一个函数或 lambda 表达式。左括号多了(遍历完了但栈非空),左右括号类型不匹配(匹配过程中发现和栈中弹出元素不同),右括号多了(还没遍历完但栈空了)2.输入if token not in {'+','-','*','/'}:stack.先独立做题,然后看视频讲解,然后看文章讲解,然后再重新做一遍题,把题目AC,最后整理成今日当天的博客。,遇左括号进栈,遇右括号弹出比较。进行对应的符号运算,得到的新的数字放入栈中,继续遍历,直到遍历结束。

2024-01-06 18:04:12 345 1

原创 代码随想录算法训练营day10 | 232.用栈实现队列、225. 用队列实现栈

栈与队列part01先独立做题,然后看视频讲解,然后看文章讲解,然后再重新做一遍题,把题目AC,最后整理成今日当天的博客。

2024-01-06 00:20:26 826 1

原创 代码随想录算法训练营day09 | 28. 实现 strStr()、459.重复的子字符串

字符串是若干字符组成的有限序列,也可以理解为是一个字符数组。双指针法在数组,链表和字符串中很常用。使用KMP可以解决两类经典问题:1.匹配问题 2.重复子串问题。

2024-01-04 19:19:05 363 1

原创 代码随想录算法训练营day08 | 344.反转字符串、541. 反转字符串II、卡码网:54.替换数字、151.翻转字符串里的单词、卡码网:55.右旋转字符串

2.字符串也是一种数组,所以元素在内存中是连续分布,这就决定了反转链表和反转字符串方式上还是有所差异的。先独立做题,然后看视频讲解,然后看文章讲解,然后再重新做一遍题,把题目AC,最后整理成今日当天的博客。: 将字符串拆分为单词,然后反转每个单词,最后用空格将它们连接起来。1.熟悉一下真正在python中可运行的代码的写法!库函数:先删除空白,然后整个反转,最后单词反转。2.双指针法:类似移除元素的方法。系统自带的库函数涉及区间都是左闭右开的。双指针首尾同时向中间移动,两两交换。: 移除字符串两端的空格。

2024-01-04 18:13:15 1402 1

原创 代码随想录算法训练营day07 | 454.四数相加II 、383. 赎金信 、15. 三数之和 、18. 四数之和

key放a和b两数之和,value 放a和b两数之和出现的次数。将和以及次数放入哈希表,在对C和D遍历时在哈希表中查找是否含有0-(c+d)。2.在 Python 中,字典是一种键-值对(key-value pair)的数据结构,而 dict()注意left+1和right-1写在循环的哪里(只有分类讨论sum==target的时候才对二者同时进行操作)先独立做题,然后看视频讲解,然后看文章讲解,然后再重新做一遍题,把题目AC,最后整理成今日当天的博客。进行排序(按升序)的方法。大A和大B,大C和大D)

2024-01-02 19:22:33 341

原创 代码随想录算法训练营day06 | 242.有效的字母异位词 、349. 两个数组的交集、202. 快乐数、1. 两数之和 (补卡)

6.常见的三种哈希结构:数组(哈希表size比较小的时候,可以用二十六个字母来表示)、集合set(size比较大的时候)、映射map(k对应value的时候用map)是一个集合,里面放的元素只能是一个key,而两数之和这道题目,不仅要判断y是否存在而且还要记录y的下标位置,因为要返回x 和 y的下标。3.这道题我们需要给出一个元素(=target-此处的元素),判断这个元素是否出现过,如果出现过,返回这个元素的下标。,因为我们要使用额外的数组,set或者是map来存放数据,才能实现快速的查找。

2024-01-02 15:52:27 1667

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

快指针每次走两步,慢指针每次走一步,如果存在环,则快慢指针必会相遇。并且确定环的入口时,由于快指针以慢指针的两倍速度在走,那么必然会在慢指针进入环的第一圈时二者相遇(必然是快指针去追慢指针的过程)。先独立做题,然后看视频讲解,然后看文章讲解,然后再重新做一遍题,把题目AC,最后整理成今日当天的博客。先定义虚拟头节点,while循环定义两两交换,注意有两个节点可能会没有链接,所以要提前收集好。,一次性搞定,快指针比慢指针先走n步,这样才能让慢指针指在删除项的前一位时,快指针在最后一位。

2023-12-30 13:00:53 749 1

原创 代码随想录算法训练营day03 | 203.移除链表元素 、707.设计链表 、 206.反转链表

数组在定义的时候,长度就是固定的,如果想改动数组的长度,就需要重新定义一个新的数组。链表的长度可以是不固定的,并且可以动态增删, 适合数据量不固定,频繁增删,较少查询的场景。链表是一种通过指针串联在一起的线性结构,每一个节点由两部分组成,一个是数据域一个是指针域(存放指向下一个节点的指针),最后一个节点的指针域指向null(空指针的意思)。先独立做题,然后看视频讲解,然后看文章讲解,然后再重新做一遍题,把题目AC,最后整理成今日当天的博客。了解一下链接基础,以及链表和数组的区别;3.下标是从0开始算的。

2023-12-29 22:00:28 347

原创 代码随想录算法训练营day02 | 977.有序数组的平方、209.长度最小的子数组、 59.螺旋矩阵II

重排过程中while嵌套for循环,控制第一个指针不变,之后所有的依次与它比较,后面小于它就交换次序,最后再让第一个指针往前走。(超出时间限制了) 时间复杂度O(n^2),空间复杂度:O(1)先独立做题,然后看视频讲解,然后看文章讲解,然后再重新做一遍题,把题目AC,最后整理成今日当天的博客。由于平方后最大值总是在两端处取到,因此在两端各定义一个指针,从两端向内移动重排,时间复杂度大大降低。外层循环描述终止点的遍历过程,内层循环描述起始点的遍历过程,二者移动都是单向的。进行重排了,这回可以顺利提交!

2023-12-28 23:50:38 333 1

原创 代码随想录算法训练营day01 | 704. 二分查找,27. 移除元素

2. AttributeError: 'list' object has no attribute 'size':原因是"return nums.size"这种写法不对,python中列表对象没有size属性,应当用 len() 来表示。基础数学出身,大学期间完全没学过编程,目前研二,算法基础一点没有。今年上半年自学过一点python,到现在差不多忘光了,小白中的小白。,不求自己能写出代码,听懂网课看懂70%pdf资料就好。运算符号规范的格式是怎么样的啊?(最后我还是没写出来,抄的别人的答案)

2023-12-27 20:41:29 346 1

空空如也

空空如也

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

TA关注的人

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