自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Github Codespaces Cmake项目使用

参考:GitHub Codespaces 概述开发容器简介VSCODE配置使用cmake构建c++项目

2024-09-06 11:28:54 214

原创 day 30 第七章 回溯算法part06

关键是怎么实现起始机场与到达机场的映射,并且具有字典序。● 51. N皇后 棋盘行就是深度,棋盘列就是广度。判断列,45度角,135度角是否存在皇后。终止条件就是遍历到最后一行。需要判断棋格放皇后是否有效。● 332.重新安排行程。● 332.重新安排行程。

2024-05-14 11:49:26 215 1

原创 day 29 第七章 回溯算法part05

关键是需要去重,重复出现是因为同层取用了相同值的元素,通过对数组排序使相同元素相邻,借助数组标记使用过的元素位置从而判断是否去重。排列有顺序,[1,2] [2,1]是不同的,所以每层都需要从头遍历整个数组。麻烦的点在于去重的判断,已经不能遗漏过程中产生的子集。遍历的时候需要避开已经取用过的元素。

2024-05-13 12:14:06 306

原创 day 28 第七章 回溯算法

注意子集问题,过程中的子集也是结果之一。● 93.复原IP地址。● 93.复原IP地址。

2024-05-11 15:53:10 213

原创 day 27 第七章 回溯算法part03

回溯不好在脑海里硬想,多动手画一次树形结构,这样分析回溯逻辑就更方便了。● 40.组合总和II。● 131.分割回文串。● 40.组合总和II。● 131.分割回文串。● 39. 组合总和。● 39. 组合总和。

2024-05-11 14:15:39 258

原创 day 25 第七章 回溯算法part02

● 17.电话号码的字母组合。● 216.组合总和III。

2024-05-10 15:52:21 184

原创 day 24 第七章 回溯算法part01

子集问题:一个N个数的集合里有多少符合条件的子集。排列问题:N个数按一定规则全排列,有几种排列方式。组合问题:N个数里面按一定规则找出k个数的集合。切割问题:一个字符串按一定规则有几种切割方式。本质上还是穷举遍历,伴随着递归。棋盘问题:N皇后,解数独等等。

2024-05-10 15:05:05 278

原创 day 23 第六章 二叉树part09

● 108.将有序数组转换为二叉搜索树。● 108.将有序数组转换为二叉搜索树。● 538.把二叉搜索树转换为累加树。● 538.把二叉搜索树转换为累加树。● 669. 修剪二叉搜索树。● 669. 修剪二叉搜索树。

2024-05-10 11:58:25 279

原创 day 22 第六章 二叉树

● 235. 二叉搜索树的最近公共祖先。● 235. 二叉搜索树的最近公共祖先。● 701.二叉搜索树中的插入操作。● 450.删除二叉搜索树中的节点。● 701.二叉搜索树中的插入操作。● 450.删除二叉搜索树中的节点。

2024-05-09 16:08:01 200

原创 day 21 第六章 二叉树part07

● 530.二叉搜索树的最小绝对差。● 236. 二叉树的最近公共祖先。● 530.二叉搜索树的最小绝对差。● 236. 二叉树的最近公共祖先。● 501.二叉搜索树中的众数。● 501.二叉搜索树中的众数。

2024-05-09 14:29:25 206

原创 day 20 第六章 二叉树 part06

二叉搜索树本质是上有序数组,关键就在于有序。● 700.二叉搜索树中的搜索。● 700.二叉搜索树中的搜索。● 98.验证二叉搜索树。● 98.验证二叉搜索树。● 654.最大二叉树。● 617.合并二叉树。● 654.最大二叉树。● 617.合并二叉树。

2024-05-08 18:46:02 268

原创 day 18 第六章 二叉树 part05

● 106.从中序与后序遍历序列构造二叉树 105.从前序与中序遍历序列构造二叉树。关键是递归逻辑的书写,要明确前中后序遍历的逻辑,套进递归里。● 112. 路径总和 113.路径总和ii。● 106.从中序与后序遍历序列构造二叉树。105.从前序与中序遍历序列构造二叉树。● 513.找树左下角的值。● 513.找树左下角的值。● 112. 路径总和。113.路径总和ii。

2024-05-08 16:36:20 221

原创 day 17:第六章 二叉树part04

掌握递归的思考过程● 110.平衡二叉树● 257. 二叉树的所有路径● 404.左叶子之和● 110.平衡二叉树/*110. 平衡二叉树简单给定一个二叉树,判断它是否是平衡二叉树一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。/** 返回值深度,传入节点* 终止条件:节点空* 单层递归逻辑:左子节点递归,右子节点递归,返回深度加一,如果判断出节点高度大于1,返回-1,说明不是平衡二叉树*/

2024-04-19 16:30:29 251

原创 day 16:第六章 二叉树part03

自我感觉层序遍历用起来更简单,递归法更难理解。递归法最好写出三要素再写代码● 104.二叉树的最大深度 559.n叉树的最大深度● 111.二叉树的最小深度● 222.完全二叉树的节点个数● 104.二叉树的最大深度 559.n叉树的最大深度/*104. 二叉树的最大深度简单给定一个二叉树 root ,返回其最大深度。二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。/** 迭代方法,类似层序遍历。

2024-04-18 16:35:33 200

原创 day 15:第六章 二叉树 part02

主要学习了层序遍历(1.借助队列迭代。2.递归)● 层序遍历 10十道题,均可用层序遍历的思想完成(1.借助队列迭代。2.递归)● 226.翻转二叉树我使用的层序遍历的方法对左右节点进行反转,还可以使用递归,递归的时候需要注意用何种顺序进行遍历● 101.对称二叉树 2本质上是要对左右子树分别遍历,并且遍历顺序相反,借助递归法实现● 层序遍历 10102.二叉树的层序遍历/*102. 二叉树的层序遍历中等给你二叉树的根节点 root ,返回其节点值的 层序遍历。

2024-04-18 15:20:26 259

原创 qt设置窗口为无边框模式后窗口不显示问题解决

这样设置无边框会使得窗口无法显示,看不到窗口。

2024-04-17 17:03:35 261

原创 ●day 14:第六章 二叉树part01

递归与迭代的区别,递归频繁调用自身,迭代频繁循环判断二叉树遍历方式,深度优先(前序,中序,后序)● 递归遍历● 迭代遍历● 统一迭代(未学习)/*144. 二叉树的前序遍历简单给你二叉树的根节点 root ,返回它节点值的 前序 遍历。* };*/int val;return res;/** 迭代遍历,用栈实现*/if(!while (!

2024-04-16 14:41:07 214

原创 ●day 13:第五章 栈与队列part03

单调队列的实现,优先级队列的使用● 239. 滑动窗口最大值● 347.前 K 个高频元素● 239. 滑动窗口最大值/*239. 滑动窗口最大值困难提示给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回 滑动窗口中的最大值。示例 1:输入:nums = [1,3,-1,-3,5,3,6,7], k = 3输出:[3,3,5,5,6,7]解释:滑动窗口的位置 最大值。

2024-04-15 18:10:45 346

原创 day 11:第五章 栈与队列part02

题目要求查找的元素符合先入后出特点(相邻,按顺序匹配)保证不重复(需要把使用过的元素删除)● 20. 有效的括号● 1047. 删除字符串中的所有相邻重复项● 150. 逆波兰表达式求值● 20. 有效的括号/*20. 有效的括号简单提示给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的相同类型的左括号。

2024-04-15 12:11:00 207

原创 day10: 第五章 栈与队列part01

栈与队列在c++中都是容器适配器,实现的底层是vector deque这些容器。理解先进先出与先进后出● 理论基础● 232.用栈实现队列● 225. 用队列实现栈● 232.用栈实现队列/** 232. 用栈实现队列简单请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):实现 MyQueue 类:void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元素。

2024-04-12 11:52:32 213

原创 day8字符串part01

反转问题要活用双指针法,有效减少额外空间的使用344.反转字符串● 541. 反转字符串II● 卡码网:54.替换数字● 151.翻转字符串里的单词● 卡码网:55.右旋转字符串344.反转字符串/*344. 反转字符串简单提示编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。right -=1;

2024-04-11 15:22:59 290

原创 day7:哈希表学习

对于查,某个元素是否在集合中出现过,哈希法是非常高效的方法但是对于需要去重的情况下,哈希法要注意太多细节,很难完美写完,因此采用双指针法,更便于去重● 454.四数相加II/*454. 四数相加 II中等给你四个整数数组 nums1、nums2、nums3 和 nums4 ,数组长度都是 n ,请你计算有多少个元组 (i, j, k, l) 能满足:*/public:/** 暴力解法四层for循环,显然时间复杂度很高。

2024-04-10 16:01:25 202

原创 day6:哈希表01

● 242.有效的字母异位词。● 349. 两个数组的交集。● 202. 快乐数。

2024-04-08 18:23:50 133

原创 day3: 链表

链表增删时较为方便,做题时多画图● 203.移除链表元素给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点。//释放删除节点} else //遍历return res;● 707.设计链表你可以选择使用单链表或者双链表,设计并实现自己的链表。单链表中的节点应该具备两个属性:val 和 next。

2024-04-08 18:13:49 271

原创 day2:双指针,滑动窗口,模拟行为

数组不方便进行位置上的变动,双指针法可以将大量比较简化成两两比较,滑动窗口需要注意区间的选择及两端移动的条件,在有多重循环时需要注意循环不变量,找准循环区间。

2024-04-07 15:49:44 306

原创 算法学习第一天-二分法及双指针法

文章讲解:https://programmercarl.com/0704.%E4%BA%8C%E5%88%86%E6%9F%A5%E6%89%BE.html。文章讲解:https://programmercarl.com/0027.%E7%A7%BB%E9%99%A4%E5%85%83%E7%B4%A0.html。题目链接:https://leetcode.cn/problems/binary-search/数组理论基础,704. 二分查找,27. 移除元素。

2024-04-03 18:15:42 225

原创 ffmpeg拉流并解码

流程注意事项版本不同导致的api差异资源安全释放

2024-03-25 17:22:25 524

原创 qt+ffmpeg+mpp+rga+opengl实现rtsp播放

分阶段实现。

2024-03-21 16:46:46 576

原创 USB摄像头数据获取——libuvc

依赖性:libuvc虽然是跨平台的,但需要额外安装,可能增加项目的依赖性和部署的复杂性。功能有限:相对于V4L2,libuvc提供的功能相对有限,可能无法满足一些高级需求。指定帧处理函数,指定的帧处理函数将在每次获取到帧数据时调用。打印设备相关信息,可以获取输出流相关信息,在。自带了example.c例程,只需修改。指定设备,相关信息可通过。

2024-02-29 16:59:14 873

原创 ubuntu usb摄像头配置规则使普通用户可访问

lsusb这将列出所有连接到系统上的USB设备,并显示它们的详细信息,包括厂商ID和产品ID。在输出中找到您的UVC摄像头设备,并记录下其厂商ID和产品ID。在这个例子中,厂商ID是 046d,产品ID是 0825。通过这些信息可以锁定到对应的摄像头,但是同个厂家的摄像头这些信息是一样的,可以在购买的时候让厂家修改为不一样的。

2024-02-20 10:06:48 377

原创 USB摄像头数据获取——V4L2

原生Linux支持:V4L2是Linux内核的一部分,因此对于在Linux系统上进行视频捕获的应用来说,V4L2是一种自然的选择。学习曲线陡峭:V4L2的使用可能相对复杂,对于初学者来说需要花费一些时间来了解其API和概念。编码繁琐:使用V4L2需要编写大量的代码来设置设备、请求缓冲区、处理帧等,可能会增加开发工作量。功能丰富:V4L2提供了广泛的功能和选项,允许对视频采集设备进行细粒度的控制。稳定性:V4L2经过长时间的发展和实践,已经被广泛使用并且比较成熟稳定。

2024-02-19 15:11:37 470

原创 LVGL8.3日历组件标题的年月修改(lvgl自带的只显示到2023年)

lv_calendar_obj_dropdown.c文件中修改2023为想要的最大年份,三处改动。

2024-01-15 15:05:06 705

原创 QT中32位数转为浮点数,互转,解决QDataStream写入时有多余的字符

【代码】QT中32位数转为浮点数,互转,解决QDataStream写入时有多余的字符。

2023-11-21 16:43:08 375 2

原创 select实现I/O服用服务器端

【代码】select实现I/O服用服务器端。

2023-11-10 15:25:55 91

原创 select函数学习,监听标准输入

select函数可以将多个文件描述符集中到一起统一监视,监视项分为三类(接收,传输,异常)。为避免阻塞,该函数也有超时时间参数。多个文件描述符的集合用fd_set类型设置,fd_set的最左端的位表示文件描述符0,当该位值为1时表示监视该文件描述符。有相关宏定义用于操作该变量。

2023-11-10 14:24:53 214

原创 QTcpServer,QTcpSocket学习,实现简单的服务器与客户端

只需要listen,并且connect QTcpServer::newConnection即可,获取已连接的套接字,connect QTcpSocket::readyRead即可读取传来的数据。客户端发来的消息会被显示。

2023-11-10 11:23:10 128

原创 使用fork实现多进程并发服务器以及I/O分离的客户端

假设有100个链接请求,单个受理时间为0.5s,按序链接的话第一百个的受理时间为50s。假如使用并发链接,每个连接受理时间也许是2~3s,显然在某些情况下,并发连接是更好的方案。

2023-11-07 15:11:56 152

原创 linux编译多个源文件,打印最新编译时间

目前只学到了cmakelist实现最新编译时间打印,且只打印最新运行了cmakelist文件的编译时间,不知道是否有其他方法能够打印每次make之后的时间。

2023-11-06 16:06:29 314

原创 简单的tcp服务器(主要是设置超时用于线程退出),lvgl多线程刷新

1.设置accept函数超时时间,设置推出标志2.使用select函数超时这个还没具体学怎么实现,后续有机会添加。

2023-11-03 17:32:03 432

原创 ubuntu .desktop,ros-qt-rviz程序桌面快捷方式创建

desktop文件是一个用来运行程序的快捷方式,可在目录下看到*.desktop文件,复制一份到桌面,基本格式如下只需修改Exec(指定启动脚本路径)Icon(快捷方式图标),其中用于指定启动时是否运行命令行,

2023-11-03 10:22:20 212

空空如也

空空如也

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

TA关注的人

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