- 博客(24)
- 收藏
- 关注
原创 leetcode算法训练二十三天| 39. 组合总和,40.组合总和II,131.分割回文串
学习时间:22:00-23:02记录时间:23:00-23:03状态:已听懂|可复写代码|最好复习第一次在回溯算法的题目上做出了80%!可惜卡在了result数组的去重上!(第一个数字取到数组中第二个位置后后面的数字就必须从第二个位置开始取,如果第二个数字可以取第一个位置的数字就可能重复了)
2023-11-26 22:23:02
97
原创 leetcode算法训练二十二天| 216.组合总和III, 17.电话号码的字母组合
学习时间:21:10-21:48记录时间:21:48-21:50状态:已听懂|可复写代码|最好复习由于时间较紧,接下来我只展示python代码。
2023-11-22 23:31:37
124
原创 代码训练第21天| 回溯算法理论基础,77. 组合
学习时间:23:30-23:58记录时间:23:58-24:10状态:已听懂|未复写代码|最好复习对于回溯算法,我们已经在之前的二叉树中遇到了好几道题了,下面我们将系统性的学习一下回溯算法,了解一下大致的思路。其实,回溯算法并不是时间复杂度、空间复杂度小的一类算法(尽管很难理解),相反的是,回溯算法的本质是遍历,因此其恰恰是效率较低的算法。但是对于很多题目来说,能有一个方法去解决题目已经很不容易了,因此我们需要去学习回溯算法。
2023-11-22 09:39:40
92
原创 leetcode算法训练二十天| 669. 修剪二叉搜索树,108.将有序数组转换为二叉搜索树,538.把二叉搜索树转换为累加树
学习时间:21:59-22:40记录时间:22:41-状态:已听懂|未复写代码|最好复习这道题可以使用递归方法来解决。下面我将展示递归方法。代码待写。
2023-11-19 22:48:59
97
原创 leetcode算法训练十九天| 235. 二叉搜索树的最近公共祖先, 701.二叉搜索树中的插入操作,450.删除二叉搜索树中的节点
学习时间:14:00-14:22记录时间:14:24-14:37状态:已听懂|未复写代码|最好复习这道二叉搜索树的最近公共祖先相较于昨天的二叉树最近公共祖先简单了很多。这是由于二叉搜索树的有序性给了我们递归或者遍历的方向。接下来我就写一下本题的递归思路。代码待写。
2023-11-19 15:47:48
44
原创 leetcode算法训练十八天|530.二叉搜索树的最小绝对差,501.二叉搜索树中的众数,236. 二叉树的最近公共祖先
学习时间:21:30-22:06记录时间:22:06状态:已听懂|未复写代码|最好复习。
2023-11-16 23:12:13
110
1
原创 leetcode算法训练十七天| 654.最大二叉树, 617.合并二叉树 ,700.二叉搜索树中的搜索, 98.验证二叉搜索树
学习时间:10:00-10:21(最早学习的一集)记录时间:10:22-10:47状态:已听懂|可单独复写代码|暂时不复习。
2023-11-15 21:48:54
34
原创 leetcode算法训练十六天| 513.找树左下角的值,112、113.路径总和,106、105.从中序与后序遍历序列构造二叉树
我终于找到实习了!!!为了庆祝下晚点写算法训练也是合情合理的(对吧对吧?
2023-11-14 18:02:01
61
原创 leetcode算法训练十五天| 110.平衡二叉树,257. 二叉树的所有路径,404.左叶子之和
昨天休息了一天,和朋友们去城里喝咖啡打biliards去了,今天狂补两天的算法。
2023-11-12 18:30:36
93
1
原创 leetcode算法训练十四天| 104.二叉树的最大深度,111.二叉树的最小深度,222.完全二叉树的节点个数
学习时间:14:20-15:00记录时间:15:05-15:20状态:已听懂|可单独复写代码|需复习。
2023-11-10 19:51:28
351
1
原创 leetcode算法训练十三天| 102.二叉树的层序遍历,226.反转二叉树,101.对称二叉树
最近特别忙,故层序遍历先做一道最基础的题目以记忆下二叉树层序遍历的方法。记录下今天跑40km只为参加一个实习面试。。。
2023-11-10 10:06:39
57
1
原创 leetcode算法训练十二天| 二叉树的递归遍历
学习时间:22:30-23:23记录时间:23:23-23:状态:已听懂|可单独复写代码|需复习。
2023-11-09 20:48:34
49
1
原创 leetcode算法训练十一天| 239. 滑动窗口最大值,347.前 K 个高频元素,栈与队列总结
栈和队列都是基于底层构造的数据结构,所以我们更需要了解栈与队列的底层结构。在python的collections中,栈与队列都是基于deque(双向链表)这个底层数据结构。因此我们可以知道栈和队列的内存地址是不连续的。而并不是所有队列都是基于双向链表的,比如优先级队列,其是基于小顶堆(小顶堆在python中是基于数组的)。
2023-11-06 17:54:02
47
原创 leetcode算法训练十天| 20. 有效的括号,1047. 删除字符串中的所有相邻重复项,150. 逆波兰表达式求值
要知道栈为什么适合做这种类似于爱消除的操作,因为栈帮助我们记录了 遍历数组当前元素时候,前一个元素是什么。
2023-11-04 20:05:10
56
1
原创 Webdriver 爬虫学习记录
个人对于webdriver的理解webdriver模拟正常用户使用浏览器点击的过程进行数据的爬取,在理论上如果webdriver的操作足够随机的话被发现是爬虫的概率较低(不被发现!=不会碰到反爬技术)。用这种方法比较便捷的点在于你不需要再专门去伪造请求头了,请求头是由你选择的浏览器自己发送到(本文使用Edge浏览器)。(当然,大多数情况下我更倾向于傻瓜式的八爪鱼软件)webdriver的基本操作首先展示所用到的包:from selenium import webdriver
2023-11-03 19:31:20
1689
原创 leetcode算法训练第九天| 栈与队列理论基础,232.用栈实现队列,225. 用队列实现栈
首先先总结一下最基础的内容:栈(stack)遵循后进先出(LIFO),队列(queue)遵循先进先出(FIFO)。然后总结一下python的collection库中栈与队列实现的底层容器。在collection中,栈和队列都是由deque(双向链表)所实现的,而且不同于C++,collection中是无法指定实现其功能的底层容器的。只有在了解了栈与队列实现的底层容器与机制后我们才可以更好的去解决算法题目。
2023-11-03 17:49:58
64
原创 leetcode算法训练第八天| 字符串总结 双指针总结
众所周知,python的字符串是immutable的,同时其也不像c++或c需要特殊的停止符来表示终止:由于python字符串不可变的特性,python底层会记录每个字符串的长度,所以其不需要终止符。从使用的角度来说,双指针法分为快慢指针、左右指针、逆序指针(我编的,不知道其专有名词)大部分双指针法都可以把o(n2)的复杂度降为o(n)。我下面将把之前做过的题目与对应的指针进行分类。快慢指针:删除元素,判断列表是否有闭环,删除列表倒数第n个节点,反转链表左右指针:字符串反转,数组平方后排序,n数之和。
2023-11-02 21:18:22
66
1
原创 leetcode算法训练第七天| 344.反转字符串,541. 反转字符串II,剑指Offer 05.替换空格,151.翻转字符串里的单词,剑指Offer58-II.左旋转字符串
学习时间:11:20-11:35记录时间:11:50-12:10状态:已听懂|可单独复写代码|暂不需复习。
2023-11-01 18:24:53
279
1
原创 leetcode算法训练第六天| 454.四数相加II,383. 赎金信,15. 三数之和,18. 四数之和
学习时间:16:40-17:20记录时间:17:20-17:50状态:已听懂|可单独复写代码|暂不需复习。
2023-10-31 23:17:35
96
1
原创 leetcode算法训练第五天| 242.有效的字母异位词 ,349. 两个数组的交集,202. 快乐数 ,1. 两数之和
学习时间:16:00-17:15记录时间:19:36-20:00状态:已听懂|可单独复写代码|暂不需复习。
2023-10-30 23:54:57
136
1
原创 leetcode算法训练第四天| 24. 两两交换链表中的节点 ,19.删除链表的倒数第N个节点 ,面试题 02.07. 链表相交 ,142.环形链表II
学习开始时间:15:40-16:20文档记录时间: 16:33- 17:00状态:已听懂|可单独复写代码|需复习。
2023-10-28 21:15:50
79
1
原创 leetcode算法训练第三天| 203.移除链表元素 , 707.设计链表 , 206.反转链表
学习开始时间:13:40-15:30文档记录时间: 15:30- 15:39状态:已听懂|可单独复写代码|暂不需复习。
2023-10-27 21:41:04
150
2
原创 leetcode算法训练第二天| 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II
代码随想录 (programmercarl.com)学习开始时间:11:00-12:30文档记录时间: 16:03- 17:00状态:已听懂|可单独复写代码|需复习。
2023-10-27 02:02:48
257
1
原创 leetcode算法训练第一天| 704. 二分查找、27. 移除元素
首先我先定义区间的属性,在下文中,本篇记录将左闭右开[left, right)以及左闭右闭[left, right]称作区间的属性,属性的不变性即代表当我们确认区间的属性后,在二分查找法接下来的所有代码中,我们都默认区间的属性是固定不变的。因此区间的自身属性的不变性就非常重要了,如果每个循环中区间的属性都不一样,那就根本无法完成二分法的查找任务。但是我从未真正系统的了解二分法的具体实现,数据结构课程的课程项目中的二分法也是直接复制粘贴老师的代码,并未逐行代码的推敲。
2023-10-25 19:59:20
507
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人