自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 代码随想录算法训练营0528| 235. 二叉搜索树的最近公共祖先 、701.二叉搜索树中的插入操作、450.删除二叉搜索树中的节点

思路很牛:利用二叉搜索树左子树<中间节点<右子树的特点,从上往下遍历,遇到的第一个数值大小在pq中间的节点即为最近公共祖先(这样一定是p在左子树,q在右子树--->pq分离)这样就把问题简化成了二分查找。虽然有多种结构,只选择在叶子节点插入就比较简单--->将问题转化为一直二分直到查找一个空节点,这个节点的值比target大-->左节点,小--->右节点。但是有一点要注意的是,要添加节点,必须知道父节点,因此需要一个新的变量来记录父节点。235. 二叉搜索树的最近公共祖先。450.删除二叉搜索树中的节点。

2024-06-03 17:35:25 32

原创 代码随想录算法训练营0527| 530.二叉搜索树的最小绝对差、501.二叉搜索树中的众数、236. 二叉树的最近公共祖先

思路比较简单,就是中序遍历,拿遍历的‘后一个节点(cur指针)减前一个节点(pre指针)’只要有序(指二叉搜索数的数据排布),就有双指针的出现。和530思路一样,只是把求差值转变为了计数。530.二叉搜索树的最小绝对差。236. 二叉树的最近公共祖先。501.二叉搜索树中的众数。难题先跳过,考不到难题。

2024-05-31 17:49:25 143

原创 代码随想录算法训练营0526| 654.最大二叉树、617.合并二叉树 、700.二叉搜索树中的搜索、98.验证二叉搜索树

一次比较左右节点和父节点的值。注意有个坑,不应该仅局限于这三个值的比较,还有一点是右子树的全部值都应该大于左子树。将层序存储的二叉树,中序遍历一次,就是从左到右,从下到上的顺序了。通过比较遍历得到的数组是不是递增的,可以得到是否为有效的二叉搜索树。树上的数值是有序的,按照左子树

2024-05-29 22:14:51 180

原创 代码随想录算法训练营0525| 513.找树左下角的值、112. 路径总和、113.路径总和ii、106.从中序与后序遍历序列构造二叉树、105.从前序与中序遍历序列构造二叉树

晕递归…

2024-05-29 20:27:42 210

原创 代码随想录算法训练营0524| 110.平衡二叉树 、257. 二叉树的所有路径 、404.左叶子之和

平衡二叉树:左右层数相差最多为1。二叉树要给人看晕了……257. 二叉树的所有路径。

2024-05-28 17:42:15 186

原创 代码随想录算法训练营0523| 104.二叉树的最大深度 559.n叉树的最大深度 111.二叉树的最小深度● 222.完全二叉树的节点个数

104、559和111和层序遍历10道题里面的没区别。不过卡哥好像用dfs+递归重写了,感觉还是层序遍历的迭代法更好懂啊。

2024-05-28 16:14:52 153

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

题也太多了……

2024-05-23 13:32:30 281

原创 代码随想录算法训练营0521| 理论基础、递归遍历 、迭代遍历、统一迭代

二叉树第一次接触,不好理解。看看刷完题会不会有更深的理解递归遍历哎呀递归,理解非常不透彻,感觉像个黑盒子,如懂。卡哥总结的写递归法的三要素,上次我自己好像也总结了,但是没有找到。大概就是把for/while循环的单层拎出来写成一个函数,将函数输出再次作为函数的输入,直至满足终止条件。①确定输入输出参数②确定终止条件③确定单层循环要完成的内容递归法遍历,就是两重链表的查询元素。主要是这三句的出现顺序,就是节点的遍历顺序:(前中后序遍历,都是深度优先搜索dfs)

2024-05-21 20:27:58 195 1

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

要求至少先看懂思路。

2024-05-21 19:58:39 147 1

原创 面试经验记录

再仔细梳理一下两篇论文的内容讲解的表达。对公司的看法和未来的职业规划想一下套路。自我介绍+“同色异谱”的概念解释和探讨+对华为的看法+以后的职业规划。自我介绍+详细问了两篇论文的内容+很简单的代码题。1、上海华为终端BG。

2024-05-20 20:28:10 87 1

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

完全是一个暴力解。注意判断栈为空的条件。

2024-05-20 15:17:21 87 1

原创 代码随想录算法训练营0517| 理论基础、232.用栈实现队列、225. 用队列实现栈

在用栈实现队列时,由于是list,如果用pop(0)的话,每次pop(0)都需要后面的每个元素都移动位置,因此时间复杂度较高。Python的deque是双向队列,pop是从右边弹出,popleft从左边弹出(数据从左至右存储)③popleft():弹出deque的第一个元素(和list的不同)这俩题想着理论完全简单,怎么都做这么久!②pop():弹出deque的最后一个元素。就是一个单出口的瓶子:后放进去的先出来;②pop():弹出列表的最后一个元素。③pop(0):弹出列表的第一个元素。

2024-05-17 14:32:59 106

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

语法:range(start,end,间隔),间隔放在最后写相同的还有列表的索引:listA[::间隔],这里默认start=开头,end=结尾,如果end<0,那么默认start=结尾,end=开头。

2024-05-15 16:41:39 201 1

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

原来的思路是:算出链各个字符串的hashtable,然后做减法,得到的数组中如果没有小于0的元素,则返回true。注意①要import,②意为创建一个空字典,如果访问的key 是dicA中没有的,那么把这个key加进词典,自动把该key对应value赋初值0,congress方便直接加入运算。思路是将四个列表简化为两个列表(四数相加简化为两数相加):两两一组,首先用遍历的方式求出两个列表的元素所有可能的和,这样就将四个变量简化为了两个变量,接下俩走两数之和的路即可。242.有效的字母异位词 的花式应用。

2024-05-14 23:02:25 197 3

原创 代码随想录算法训练营0513| 哈希表理论基础、242.有效的字母异位词、349.两个数组的交集、202.快乐数、1.两数之和

a’的ASCII码作为0,则‘z’的为25.出现这就将数组的对应位置的值加1。然后遍历B,如果B中的元素,是table中的键,则将这个元素加入输出结果加入集合/栈。思想是,将遍历数组A,把A转换为哈希表table存储,然后遍历B,把B中出现在table中的元素,重新存储起来。将元素内容转化为哈希表的过程,可以通过一个映射关系来完成,这个数学映射关系也就是之前“爱学习的饲养员”提到的哈希算法/哈希函数。和242类似,主要是遍历两个哈希表中的每个元素,如果对应位置的俩元素成绩不为0,则要加入输出的变量中。

2024-05-13 23:16:22 223

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

看视频前有点被next搞混了,链表交换还是简单的,容易出问题的是因为数据会被替换,所以再开始交换前要对哪些变量进行提前备份(对要操作的节点前后的节点都存一下得了)几个注意:结束循环的条件、cur的跳转位置再用递归写一下,熟悉一下新学的递归……可恶递归还是很难想到,中心思想很简单,但是自己构造起来还有点不熟练,不太容易想到要简化递归的思路,递归的实质,是把某一个操作抽离出来称为单独的一部分,在这部分操作只需要考虑很少的几个变量,而不需要考虑全盘的变量,因此按说是要更简单一点的。

2024-05-11 15:01:50 97 1

原创 代码随想录算法训练营第三天| 203.移除链表元素、209.设计链表、206.反转链表。

这一部分自刷的时候跳过了(因为据说华子不考),只看了数据结构里面的理论部分。现在补上链表理论:定义链表一个值、一个next指针指向下一个节点的存储位置。next等于None的时候表示链表结束----->目前的节点名叫current,eg:current.val(当前节点存储值) current.next(当前节点存储的指向的下一个节点的指针)可以重复连续使用:eg:current.next.val(当前节点的下一个节点的值)current.next.next(当前节点下下个位置存储的指针)

2024-05-10 22:31:35 335

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

前两个自刷时学了,但是实话说还是很难自己想起来双指针法,但是代码瞥一眼,会思路了代码一次ac,昨天海康笔试也是,那个编程看见答案才发现这么简单……这个滑动窗口,我自己刷的时候就debug了好久……逻辑一看就懂,代码一写就错……又仔细看了一遍卡哥给出的代码,明天再做一遍。比卡哥给出的复杂很多……思路是根据输入的特点,大的肯定是最左或最右。于是左右各一个指针,比较平方值,大的往后放。螺旋数组自刷的时候没看,因为感觉就是一个固定位置坐标的限制。这种限定边界的比较符合我的思考逻辑,另一种做法感觉太复杂了。

2024-05-10 18:10:08 102

原创 算法机试常用python库&库函数

也是{}定义,但是由于字典也是大括号,因此在定义空集合时,不能直接直接a={}.需要用set()函数,eg:a=set(),定义一个空集合。有值时可以直接赋值定义。将其他数据类型转换为集合,set(a),a可以是listprint集合中的所有元素可以直接print(setname)

2024-05-09 10:06:30 776

原创 代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素。

本来对自己的自学能力和控制力很有信心,尝试自刷了一次,发现自己debug能力太弱了……经常陷在bug里,也没人答疑。索性花钱加了训练营……算是为找工作花的第一笔钱钱……一定能坚持!

2024-05-08 22:58:49 104 1

原创 算法学习-数据结构基础(总)

续数据结构基础(1)

2024-04-12 22:10:22 717

原创 算法学习-数据结构基础(1)

主要是在B站看“爱学习的饲养员的视频”,用word做笔记好麻烦,开始在CSDN做记录,也方便自己查找吧。之前用MATLAB更多,和Python好多习惯都不太一样,

2024-04-11 22:24:35 305 1

空空如也

空空如也

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

TA关注的人

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