- 博客(20)
- 收藏
- 关注
原创 解决VS Code报错:preLaunchTask”C/C++: gcc.exe 生成活动文件”已终止,退出代码为 -1
可能你的代码已经在调试中,要终止当前运行的程序才能进行重新调试。
2025-02-26 16:33:39
202
原创 算法训练-Day12 | 226.翻转二叉树 101. 对称二叉树 104.二叉树的最大深度 111.二叉树的最小深度 222.完全二叉树的节点个数
所以如果左子树为空,右子树不为空,说明最小深度是 1+右子树的深度;如果右子树为空,左子树不为空,说明最小深度为 1+左子树的深度,如果左右子树都不为空,返回 1+左右子树深度最小值。注意图中的误区:没有左孩子的节点并不是最小深度。:左右孩子都为空节点的节点才是叶子节点。
2024-09-12 00:36:59
161
原创 算法训练-Day11 | 二叉树:递归遍历、迭代遍历、统一遍历、层序遍历
确定哪些参数是递归的过程中需要处理的,就在递归函数里加上这个参数,并且根据返回值确定递归函数的返回类型。:写完了递归算法, 运行的时候,经常会遇到栈溢出的错误,就是没写终止条件或者终止条件写的不对,操作系统也是用一个栈的结构来保存每一层递归的信息,如果递归没有终止,操作系统的内存栈必然就会溢出。:确定每一层递归需要处理的信息。通过重复调用单层递归来实现递归的过程。
2024-09-08 22:45:47
379
原创 算法训练-Day09 | 150. 逆波兰表达式求值 239. 滑动窗口最大值 347.前 K 个高频元素
239. 滑动窗口最大值采用双端队列1、deque内仅包含窗口内的元素->每轮窗口滑动移除了元素nums[i-1],需要将deque 内的对应元素一起删除2、deque内的元素要递减->每轮窗口滑动添加了元素nums[j+1],需要将deque内所有小于它的元素一起删除。算法流程:1、初始化:双端队列dq,结果列表result,数组长度n2、滑动窗口:左边界i ∈[1−k,n−k],右边界范围 j∈[0,n−1] a、若i > 0且队首元素deque[0] = 被删除元素nums[i-1]
2024-09-04 22:16:12
474
原创 算法训练-Day08 | 232.用栈实现队列 225. 用队列实现栈 20. 有效的括号 1047. 删除字符串中的所有相邻重复项
Tips:遍历字符串时,将相匹配的括号压入栈中,而不是把该符号压入栈中。② 遍历字符串的过程中,栈已经为空,但是字符串还未遍历完,说明存在多余的右括号,所以 return false。① 已经遍历完字符串,但是栈不为空,说明左括号没有对应的右括号匹配,所以 return false。③在遍历字符串的过程中,发现栈中没有匹配的字符,说明括号不匹配,所以 return false。当输入栈中的元素进入输出栈时,要记得pop() 弹出输入栈中的元素。(3)字符串中左边和右边的括号类型不一致,导致不匹配。
2024-08-31 17:04:51
186
原创 算法训练-Day7|344.反转字符串 541. 反转字符串II 151.翻转字符串里的单词 28. 实现 strStr() 459.重复的子字符串
移动匹配,当一个字符串s:abcabc,内部由重复的子串组成。前面有相同的子串,后面也有相同的子串,那么用s + s,就一定能组成一个s,所以判断字符串是否由重复子串组成,只要两个s拼接在一起,如果中间还出现一个 s 的话,就说明是由重复子串组成。解题思路:1、移除多余空格 2、将整个字符串反转 3、将每个单词反转。双指针法,使用了库函数swap(作用是交换两个元素的位置)使用了库函数reverse(翻转字符串)
2024-08-30 14:50:12
186
原创 Pycharm如何设置终端默认连接服务器
点File->Setting->Tools->SSH Terminal如果连接服务器后终端还在本地,可以操作如下:单击Tools – Start SSH Session即可
2024-07-21 19:15:26
412
1
原创 Pycharm 打开远程目录 Remote Host
记录远程目录重新打开的方式:Tools—>Deployment–> Browser Remote Host
2024-03-21 15:13:55
1293
1
原创 算法训练-Day6|454.四数相加II 383. 赎金信 15. 三数之和 18. 四数之和
四数之和的双指针解法是两层for循环nums[k] + nums[i]为确定值,依然是循环内有left和right下标作为双指针,找出nums[k] + nums[i] + nums[left] + nums[right] == target的情况,三数之和的时间复杂度是O(n^2),四数之和的时间复杂度是O(n^3)。本题中,注意下Arrays.sort()函数,是对数组进行排序的。其中,key表示Map中的键,defaultValue表示当键key不存在时返回的默认值。在这道题中,要记住的函数是。
2024-01-08 21:16:46
438
1
原创 算法训练-Day5|242.有效的字母异位词 349. 两个数组的交集 202. 快乐数 1. 两数之和
当我们需要快速判断一个元素是否出现在集合里,或者说一个元素是否出现过,则可以使用哈希法。哈希法是一种以空间换时间的方法。
2024-01-03 17:01:50
449
1
原创 算法训练-Day4| 24. 两两交换链表中的节点 19.删除链表的倒数第N个节点 面试题 02.07. 链表相交 142.环形链表II
注意画图及需要定义几个节点,这里是需要临时节点的,因为节点的指针发生转向了,需要保存下一个节点,进行指针的变向。这里对slow和fast的指向要理解后应用,不然容易乱写。比较基础,思路想到了就能写出来,对节点的命名要记住,尽量有意义地去命名。这类链表题目一般都用双指针法解决,如寻找距离尾部第。注意 fast最终要指向null才会结束。个节点、寻找环入口、寻找公共尾部入口等。
2024-01-02 21:09:30
612
原创 算法训练-Day3|203.移除链表元素 707.设计链表 206.反转链表
链表理论基础①链表是一种通过指针串联在一起的线性结构,由数据域和指针域两部分构成。②跟数组不一样,数组在内存中是连续存放的,链表在内存中不是连续分布的。③链表有单链表、双链表和循环链表。
2024-01-01 17:25:23
725
原创 算法训练第一天| 704. 二分查找、27. 移除元素。
首先二分查找一般用于查找数组中的元素,可以使用二分查找的前提是该数组有序且没有重复元素(因为如果有重复元素,则返回的元素下标就可能不会是唯一的)。在使用二分查找时要明确自己要写的代码是左闭右开还是左闭右闭,根据这个理解去写代码就不会混乱。从该题目中注意到的点:数组的元素在内存空间中是连续的,不能单独删除数组中的某个元素,只能覆盖。双指针法(快慢指针法)的思想:通过一个快指针和慢指针在一个for循环中完成两个for循环的工作。本题可以使用两种方法,①暴力法(时间复杂度较高) ②双指针法。
2023-12-27 21:37:03
363
1
原创 链表知识点总结
/ 结点的值int val;// 下一个结点// 节点的构造函数(无参)// 节点的构造函数(有一个参数)// 节点的构造函数(有两个参数)
2023-12-04 11:03:24
362
原创 算法:滑动窗口
滑动窗口本质上也是一种双指针法,是在充分理解题目的情况下,暴力算法的一种简化。这道题之所以可以使用滑动窗口,很重要的一个原因是,在移动终止位置的时候,初始位置是不可逆的,初始位置只可能往后移动,而不用每次都从第零个元素开始。
2023-11-13 15:57:54
69
1
原创 DVS-事件摄像机目标检测中的循环视觉变换
我们提出了递归视觉转换器(RVTs),一种新的主干目标检测与事件相机。事件摄像机在高动态范围内提供亚毫秒级延迟的视觉信息,并对运动模糊具有很强的鲁棒性。这些独特的特性为时间紧迫的场景中的低延迟目标检测和跟踪提供了巨大的潜力。基于事件的视觉的先前工作已经实现了出色的检测性能,但是以大量的推理时间为代价,通常超过40毫秒。通过重新审视递归视觉主干的高级设计,我们将推理时间减少了6倍,同时保持了相似的性能。为了实现这一点,我们探索了一种多阶段设计,在每个阶段利用三个关键概念:首先,卷积先验可以被视为条件位置嵌入。
2023-10-17 20:56:50
1170
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人