- 博客(26)
- 收藏
- 关注
原创 代码随想录算法 Day24 | Ch7 回溯算法(三 )● 93.复原IP地址 ● 78. 子集 ●90. 子集Ⅱ
正好由四个整数(每个整数位于0到255之间组成,且不能含有前导0),整数之间用'.'分隔。给定一个只包含数字的字符串s,用以表示一个 IP 地址,返回所有可能的,这些地址可以通过在s中插入'.'来形成。你重新排序或删除s中的任何数字。你可以按顺序返回答案。2.思路:现在原字符串里插入'.'再对每一段数字判断。
2024-09-12 18:07:21
402
原创 代码随想录算法 Day23 | Ch7 回溯算法(二 )● 39.组合总和 ● 40. 组合总和 Ⅱ ●131. 分割回文串
1.题目:给你一个的整数数组candidates和一个目标整数target,找出candidates中可以使数字和为目标数target的 所有,并以列表形式返回。你可以按返回这些组合。candidates中的数字可以。如果至少一个数字的被选数量不同,则两种组合是不同的。对于给定的输入,保证和为target的不同组合数少于150个。2.思路:基本回溯模板3.注意:数字可以重复,在递归时startIndex不用 +1,从当前数字开始即可。
2024-09-12 14:38:39
500
原创 代码随想录算法 Day22 | Ch7 回溯算法(一 )● 77.组合 ● 216. 组合总和 Ⅲ ●17. 电话号码的字母组合
1.题目:给定两个整数n和k,返回范围[1, n]中所有可能的k个数的组合。你可以按返回答案。2.思路:抽象为 n 叉树,深度为 k。
2024-09-11 23:09:17
462
原创 代码随想录算法 Day21 | Ch6 二叉树(八 )● 669.修剪二叉搜索树 ● 108. 将有序数组转换成二叉搜索树 ●538. 把二叉搜索树转换为累加树
1.题目:给你二叉搜索树的根节点root,同时给定最小边界low和最大边界high。通过修剪二叉搜索树,使得所有节点的值在中。修剪树改变保留在树中的元素的相对结构 (即,如果没有被移除,原有的父代子代关系都应当保留)。可以证明,存在。所以结果应当返回修剪好的二叉搜索树的新的根节点。注意,根节点可能会根据给定的边界发生改变。
2024-09-11 20:18:43
372
原创 代码随想录算法 Day20 | Ch6 二叉树(七 )● 235.二叉搜索树的最近公共祖先 ● 701. 二叉搜索树中的插入操作 ●236. 删除二叉搜索树的节点
1.题目:给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。
2024-09-10 23:09:13
297
原创 代码随想录算法 Day18 | Ch6 二叉树(六)● 530.二叉搜索树的最小绝对差 ● 501. 二叉搜索树中的众数 ●236. 二叉树的最近公共祖先
1.题目:给你一个二叉搜索树的根节点root,返回。差值是一个正数,其数值等于两值之差的绝对值。2.思路:3.注意:(1)两个不同节点可以不相邻。
2024-09-09 22:33:49
489
原创 代码随想录算法 Day17 | Ch6 二叉树(五)● 654.最大二叉树 ● 617. 合并二叉树 ●700. 二叉搜索树中的搜索 ●98. 验证二叉搜索树
1.题目:给定一个不重复的整数数组nums。可以用下面的算法从numsnums返回 nums构建的最大二叉树。2.思路:3.注意:(1)方法一中在递归时不断创建新数组,会消耗大量内存,修改为方法二,使用记录下标的方式在原数组 nums 上获取数值即可。方法二中局部变量甚至不需要 maxValue ,使用 nums[maxIndex] 即可获取所需数值,无需用变量记录。(2)方法二中在寻找区间最大值时把变量定义和 for循环参数改成注释部分会运行超时。
2024-09-08 22:03:56
364
原创 代码随想录算法 Day16 | Ch6 二叉树(四)● 513.找树左下角的值 ● 112/113. 路径总和 ●106. 从中序与后序遍历序列构造二叉树
1.题目:给定一个二叉树的root,请找出该二叉树的节点的值。假设二叉树中至少有一个节点。
2024-09-05 22:34:45
434
原创 代码随想录算法 Day15 | Ch6 二叉树(三)● 110.平衡二叉树 ● 257. 二叉树的所有路径 ●404. 左叶子之和 ● 222.完全二叉树的节点个数
今日习题优先掌握递归。
2024-09-04 20:38:01
864
原创 代码随想录算法 Day14 | Ch6 二叉树(二)● 226.翻转二叉树 ● 101. 对称二叉树 ●104. 二叉树的最大深度 ● 111.二叉树的最小深度
今日份题目优先掌握递归方式。
2024-09-04 12:23:02
326
原创 代码随想录算法 Day11 | Ch5 栈与队列(二)● 150.逆波兰表达式求值 ● 239. 滑动窗口最大值 ●347. 前K个高频元素
1.题目:给你一个字符串数组tokens,表示一个根据表示的算术表达式。请你计算该表达式。返回一个表示表达式值的整数。2.思路:使用栈模拟计算机运行过程即可3.注意:(1)了解什么是逆波兰表达式(2)由表达式的性质可知,当出现算术符时,前面至少有两个数字,所以无需对栈的size进行判断(3)C++ 可以使用 stoi(s) 将字符串 s 转为 int。
2024-08-29 17:06:40
387
原创 代码随想录算法 Day10 | Ch5 栈与队列(一)● 232.用栈实现队列 ● 225. 用队列实现栈 ●20. 有效的括号 ● 1047. 删除字符串中的所有相邻重复项
1.题目:请你仅使用两个栈实现先入先出队列。
2024-08-23 23:07:37
221
原创 代码随想录算法 Day9 | Ch4 字符串(二)●151.翻转字符串里的单词 ●卡码网55.右旋转字符串 ●28. 实现 strStr() ●459.重复的子字符串
1.题目:给你一个字符串s,请你反转字符串中的顺序。是由非空格字符组成的字符串。s中使用至少一个空格将字符串中的分隔开。返回顺序颠倒且之间用单个空格连接的结果字符串。输入字符串s中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。2.思路:先删除多余的空格,然后把字符串整体反转,再把单词反转3.注意:(1)erase()本身的复杂度为O(n),如果在循环里面使用,时间复杂度将变为O(n²)
2024-08-22 23:14:58
472
原创 代码随想录算法 Day8 | Ch4 字符串(一)● 344.反转字符串● 541. 反转字符串II ●卡码网54. 替换数字
1.题目:编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组s的形式给出。不要给另外的数组分配额外的空间,你必须、使用 O(1) 的额外空间解决这一问题。2.思路:双指针分别从字符串首尾往中间靠拢即可3.注意:在函数 swapchar(char &a, char &b) 的形参里一定要加 &,没有&时只是交换局部变量 a 和 b。
2024-08-21 22:24:09
385
原创 代码随想录算法 Day7 | Ch3 哈希表(二)● 454.四数相加 ● 383. 赎金信 ●15.三数和 ●18. 四数之和
1.题目:给你四个整数数组nums1nums2nums3和nums4,数组长度都是n,请你计算有多少个元组2.思路:先用一个 unorder_map 记录 nums1 和 nums2 的和,key表示元素和,value表示该和出现的次数,然后找 0-(nums3 + nums4)在 unorder_map 里出现的次数。
2024-08-20 22:52:49
940
原创 代码随想录算法 Day6 | Ch3 哈希表(一)● 242.有效的字母异位词 ● 349. 两个数组的交集 ● 202. 快乐数● 1. 两数之和
1.题目:给定两个字符串s和t,编写一个函数来判断t是否是s的字母异位词。若s和t中每个字符出现的次数都相同,则称s和t互为字母异位词。2.思路:哈希表3.注意:无需创建两个数组,在对 s 的字母统计时在哈希表上递增,在统计 t 时递减即可。
2024-08-19 23:47:31
291
原创 代码随想录算法 Day4 | 24. 两两交换链表中的节点,19.删除链表的倒数第N个节点,142.环形链表Ⅱ,160. 链表相交
1.题目:给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。2.思路:正常模拟链表next的变换即可3.注意:注意next链路改变时原有路径会消失,所以需要创建辅助链表节点。
2024-08-17 21:38:28
1028
原创 代码随想录算法 Day3 | 203.移除链表元素,707.设计链表,206.反转链表
一、移除链表元素1.题目:给你一个链表的头节点head和一个整数val,请你删除链表中所有满足的节点,并返回。2.思路:依次循环即可3.注意:C++在删除节点后需要对其释放,否则在内存中还是会存在占用4.代码:(1)方式一:对 head 节点单独处理(2)方式二:自定义一个虚拟 head 节点。
2024-08-16 22:20:51
1046
原创 代码随想录算法 Day2 | 209. 长度最小的子数组,59. 螺旋矩阵Ⅱ ,7.区间和,44.开发商购买土地
1.题目:给定一个含有n个正整数的数组和一个正整数target找出该数组中满足其总和大于等于target的长度最小的,并返回其长度如果不存在符合条件的子数组,返回0。2.思路: 滑动窗口3.注意:(1)所示代码中for循环内判断条件用while而不是if循环体内使用 if 时,窗口左边界移动一次后尚未判断新窗口内子数组元素和是否 >= target 就会将右边界移动。
2024-08-15 20:20:59
869
原创 代码随想录算法 Day1 | 704. 二分查找,27. 移除元素 ,977.有序数组的平方
3.注意:①慢指针变动的条件 ②快指针强调当前检查元素,慢指针强调元素位置。2.思路:双指针(由数组排序性质可知:大的数字在两侧,小的数字在中间)3.注意:可新建一个等大小的数组,不必拘泥于在原数组上操作。3.注意:左闭右开与左开右闭两者写法的判断条件的区别。元素的顺序可能发生改变。1.题目:给你一个数组。1.题目:给你一个按。,如果目标值存在返回下标,否则返回。个元素有序的(升序)整型数组。组成的新数组,要求也按。
2024-08-14 19:03:08
373
1
原创 Windows下libmodbus库的编译与Qt里的调用
近日安装libmodbus库时查阅众多零零散散的博客,遭受多日毒打,我决定写下一篇有图有文字的详细文章记录Windows系统下用MSYS和MINGW编译libmodbus库的安装过程。大佬们可能会看的不耐烦,但是对我这样的新手极度友好!!!
2023-08-30 09:16:08
4371
15
原创 【笔记】摄像机标定和3D重构
单孔摄像机(照相机)会给图像带来很多畸变,畸变主要有 “径向畸变” 和 “切向畸变”。如下图所示,用红色直线将棋盘的两个边标注出来,棋盘的边界与红线并不重合,我们认为应该是直线的棋盘边界也凸出来了。所以,我们需要一些图案来进行摄像机标定。OpenCV官方提供了一些棋盘图像,在理论学习时我们可以使用它们,在实践过程时需要根据具体摄像头拍摄图片的内参和外参进行调节,本文使用图像均为OpenCV官方图像。Ps:这些图像需要在OpenCV官网单独下载,资源包中还会有cpp,java接口的教程等很多内容。
2023-04-03 21:07:00
351
1
原创 VS Code中清除shell窗口历史记录
在写程序时需要多次打印思考步骤以及确保程序步骤的正确性,此时的shell窗口会有很多历史残留记录,然而过多的记录会影响我们查阅,尤其是在多次报错时。所以我们需要一段代码清除历史记录,使得shell窗口简洁明了。Way 2:在程序开头添加如下代码,每次debug时会直接清除记录。Way 1:在shell窗口输入 cls 并按回车键。
2023-04-03 20:05:50
353
1
原创 机器学习环境配置
在学习一段时间机器学习后,本菜鸟深受环境配置的毒打,故记录一点步骤为以后电脑万一需要格式化做准备以及为新人提供一点帮助吧。本文讲述内容包含python、tensorflow、anaconda、Numpy、jupyter、CUDA、Pytorch的安装。
2023-03-22 20:29:55
3993
2
原创 【笔记】OpenCV图像基本操作
本文为学习笔记,OpenCV基于Python对图像的基本操作因为个人比较懒,不想到处找,所以将常用函数整理在一起,便于CV搬运
2023-03-06 21:30:18
3391
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人