- 博客(71)
- 收藏
- 关注
原创 代码随想录 | day 15 | 二叉树part03
方法一:可以用递归法遍历一遍左子树和右子树的个数之和再加1等于全部节点个数方法二:用层序遍历方式遍历一遍所有节点。
2024-08-25 16:24:21 204
原创 代码随想录 | day 13 | 第六章 二叉树part01
用栈的步骤模拟一遍前中后序遍历,关键是在cur==NULL的时候return,接着返回栈的之前保存的地址接着往下执行,详情请参考。
2024-08-23 16:43:12 517
原创 代码随想录day7 | 第三章 哈希表part02
题目关键是不用去重,并且要遍历4次数组(时间复杂度是n^4),如果用哈希表map来分开两组两组来遍历则能将时间复杂度降低为n的二次方主要思想在于用map来存储前两组遍历完后的和的次数,然后在下一组用target-(c+d)来遍历剩下的两组,所以能满足不用去重的要求。
2024-07-28 13:28:54 380
原创 代码随想录day6 | 哈希表 | 有效字母异位词、两个数组的交集、快乐数、两数之和
用只需要遍历一遍的方式来实现寻找两个下标,由于是两数之和,因此破局是target - nums[i],只需要在之前走过的历史数据中寻找是否存在当前指针指向的差值,而之前走过的历史数据用map哈希表来存储key和 value。非快乐数会陷入无限循环,这是因为对于非快乐数来说,重复计算每个数位的平方和最终会导致某些特定数值重复出现,形成一个循环。题目中说了会 无限循环,那么也就是说求和的过程中,sum会重复出现,这对解题很重要!当我们遇到了要快速判断一个元素是否出现集合里的时候,就要考虑哈希法了。
2024-07-23 21:19:52 267
原创 代码随想录刷题|数组 | 移除元素
这道题非常有意思,有意思在于这是需要原地操作,也就是在输入的数据中进行修改,暴力解法非常的暴力,也就是每发现一个目标值就把后面的所有值往前移一位。思路就是既然要覆盖出现的目标值,那不如把其他非目标值一直往前填充,最后慢指针指向的就是最终的数组大小。当然也是有关键点细节的,比如size–的设置,说多无益,看动图和代码最直观。不知道为什么我喜欢用while多点,特别是越往后面的题目。这是卡哥的代码,比较高级(其实思路都一样)这是我写的代码,比较简单。
2024-07-17 22:59:29 173
原创 代码随想录刷题|数组 | 二分法
1.1左闭右闭// 定义target在左闭右闭的区间里,[left, right]1.2 左闭右开// 定义target在左闭右开的区间里,即:[left, right)
2024-07-17 17:33:24 255
原创 gzserver: /build/ogre-1.9-B6QkmW/ogre-1.9-1.9.0+dfsg1/OgreMain/src/OgreNode.cpp:630: virtual void Og
启动gazebo环境的时候报错网上搜索了一圈说是gazebo的版本太低所致,比如我原先的版本是9.0,要升级到11.0才行。可以通过命令行查看gazebo的版本号我的原先版本是9.0,需要卸载9.0重新装11.0才行。
2023-02-06 17:03:11 780 1
原创 joint_state_publisher_gui-5] process has died
ubuntu18.04-ros-melodic中,rviz显示模型异常,或者提示rviz No transform from [link1] to [link2],的问题解决
2022-12-04 19:34:10 579
原创 QString转换char*
这样就完成了QString向char*的转化。经测试程序运行时不会出现bug。注意第3行,一定要加上,单独写,不可以str.toLatin1().data()这样一步完成,否则可能会出错。因为char*最后都有一个’\0’作为结束符,而采用QStringtoLatin1()时会在字符串后面加上’\0’。将QString转char*,需要用到QByteArray类,QByteArray类的说明详见Qt帮助文档。.........
2022-07-20 10:58:04 674 1
原创 Qt自动判断文本文件的编码格式(QT自定义文件编辑器)
迅哥说:每个程序员都会遇到乱码问题,只是早晚的事情。(鲁迅:我没说过)问题形容:比如在qt自定义一个文件编辑器,类似于window的记事本,会发现打开不同编码格式的文本文件会乱码。。解决方案:window系统的 txt 文件编码一般有 ANSI 或者 UTF8 格式,其中 ANSI 也就是qt里的 GBK格式。因此,只要我们在打开文本文件时先判断该文件的编码格式,然后qt设置好该编码格式后读取文件即可。1、第一次打开文件2、判断其编码格式3、关闭文件4、再次打开文件5、根据第二步的返回值设置
2022-04-13 14:41:37 5601 1
原创 QT获取发送信号的对象名(qobject_cast、sender、static_cast)
需求分析当某一个Object emit一个signal的时候,它就是一个sender,系统会记录下当前是谁emit出这个signal的,所以在对应的slot里就可以通过 sender()得到当前是哪个对象调用了你的slot,对应的是QObject->d->sender.使用方法多个按键对应一个按键处理槽函数,这时候就需要判断是哪一个按键发出信号触发了槽函数,这时候就可以通过sender的不同来进行不同的处理,以下就是槽函数里获取其发出信号对象的方法QPushButton*editor =
2022-03-28 11:14:32 3966 1
原创 Win10重置网络后wifi没了
原因今天在win10设置里点击了重置网络,电脑重启后WiFi竟然没了?我一度以为自己电脑坏了,因为重装WiFi驱动也没用。。后来查了下原来是重置网络后有一项服务给关了,需要手动开启才行。解决方案键盘通过window + R,打开运行,输入services.msc,在打开的服务列表中找到WLAN AutoConfig,右键,启动!...
2022-03-27 21:44:18 7184 4
原创 QT延迟函数
头文件#include<QTimer>//延迟函数void Widget::Delay_MSec(unsigned int msec){ QEventLoop loop;//定义一个新的事件循环 QTimer::singleShot(msec, &loop, SLOT(quit()));//创建单次定时器,槽函数为事件循环的退出函数 loop.exec();//事件循环开始执行,程序会卡在这里,直到定时时间到,本循环被退出}...
2022-03-26 16:54:14 3733 1
原创 symbol _ZdlPvm version Qt_5 not defined in file libQt5Core.so.5 with link time reference
说明:这个问题主要是Ubuntu自带的环境和用户自己安装的环境有冲突不兼容所造成的,这个与Ubuntu的运行机制有关。因为Qt启动程序默认在 /usr/lib/ 目录下查找libQt5Core.so.5动态链接库,而我自己安装的libQt5Core.so.5动态库在/home/XXX(用户名)/Qt5.9.5/5.9.5/gcc_64/lib下,二者是不兼容的(尽管二者名字看起来一样)解决方案思路:既然qt会去/usr/lib/ 目录下查找,那么就先把/usr/lib/libQt5Core.so.5先
2022-03-22 16:47:42 13275 3
原创 Linux下的QT的QProcess执行shell脚本文件
一、函数接口QProcess类提供了三个函数1、QProcess::execute() 以堵塞方式的执行shell命令,当命令执行完成后,调用进程才会继续执行。命令输出的任何数据都将转发给调用进程输出(因此无法捕获)。2、QProcess::start() 以异步方式的执行shell命令,命令输出的数据存储于缓冲区,可以通过readAllStandardOutput()捕获3、QProcess::startDetached() 以分离的方式执行shell命令,调用进程退出,则分离的进程将继续运行,而
2022-03-16 10:11:58 6909
原创 7z命令行解压缩时的覆盖提示(Would you like to replace the existing file:)
在用7z命令行解压缩的时候,如果目标文件夹已存在文件,命令行会提示Would you like to replace the existing file:,此时需要手动输入a(always的意思)再按enter确认才能继续。那么问题来了,如果该命令行脚本是用程序调用执行的,比如Qt的程序来自动调用,则Qt线程会卡在这个覆盖提示询问上,并且此时黑窗口是没有弹出的。此时需要用-y 使 7-Zip 执行命令时的大多数提示失效。您可以使用此选项来阻止在 e (释放) 和 x (完整路径释放) 命令中文件覆盖时的提
2022-03-04 15:46:11 4999 1
原创 No such file or directory #include <QX11Info>
我的问题描述:window环境是qt4.8.5,Linux环境是5.9.5,我直接把window 的qt源码复制到Linux下运行,会有点不对劲,程序起不来,这时需要手动更改下Linux的环境配置。报错: No such file or directory #include 这是因为编译器不认识 QX11Info,这时需要手动加上该模块解决方案:QT += gui x11extras就是上面的x11extras手动加上即可。来源:Compiler does not see QX11Info
2022-02-26 11:07:13 1113
原创 QT线程之 moveToThread() 只能用信号槽方式触发
qt的线程使用方法有把某个对象的函数放置线程里执行,方法为moveToThread()具体操作步骤为:1、创建一个新的类,让这个类从 QObject 派生class MyWork:public QObject{ .......}2、在这个类中添加一个公共的成员函数,函数体就是我们要子线程中执行的业务逻辑class MyWork:public QObject{public: ....... // 函数名自己指定, 叫什么都可以, 参数可以根据实际需求添加 v
2022-02-19 23:27:19 2463
转载 Qt数据库的相关模块常见用法
转载来源:Qt sqliteQSqlQuery类用来执行SQL语句QSqlRecord类封装数据库所有记录QSqlRelationalTableModelQSqlQueryModelQSqlTableModel第一:QSqlDatabase类QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); 采用QSQLITE数据库db.setHostName("localhost"); //设置数据库主机名 db.setDatabaseNam
2022-02-16 17:28:43 343
原创 关于QTableWidget的信号cellChanged使用方法(这个信号好坑)
1.网上找了很久,关于cellChanged这个信号的使用方法很少很少,QT文档也没找到,有的也是不具体,就是简单介绍一下,踩了很多坑,现在通过自己探索之后,才发现这个信号很坑。 2.首先介绍一下我想要实现的功能:实现用户可以手动在最后一行可编辑空白行添加行,并且编辑完成后总是添加最...
2022-01-12 08:58:49 1943
原创 LeetCode - 59.螺旋矩阵II
来源:59.螺旋矩阵II题目:给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。输入:n = 3输出:[[1,2,3],[8,9,4],[7,6,5]]关键点:循环不变量原则,其实就是左右开闭的问题,如果左闭右开就是左边开始是算数的,右边是不算数的,刚好这点在for循环里可以体现出来,比如 for(int i = 0; i<2; i++) ,则 i=0是算数的为第一个,然后是 i = 1也算数,而 i
2022-01-08 23:55:17 97
原创 LeetCode - 209.长度最小的子数组
题目给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组,并返回其长度。如果不存在符合条件的子数组,返回 0。示例:输入:s = 7, nums = [2,3,1,2,4,3] 输出:2 解释:子数组 [4,3] 是该条件下的长度最小的子数组。关键点用滑动窗口的思想,左右两个指针滑动,刚开始两个指针都放在最前面,然后右指针往右划,划到满足数组和sum>=target为止,此时记录一次最小长度。当记录一次最小长度以后,左指针也往右滑,
2022-01-06 23:04:37 79
原创 LeetCode - 977.有序数组的平方
又是一道双指针的题目,上一篇的双指针是快指针赋值给慢指针(快慢指针赋值),现在这篇是首尾两指针相互比较后,取大的赋值给新的数组。话不多说,上号: 977.有序数组的平方题目给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。示例 1: 输入:nums = [-4,-1,0,3,10] 输出:[0,1,9,16,100] 解释:平方后,数组变为 [16,1,0,9,100],排序后,数组变为 [0,1,9,16,100]示例 2: 输入:
2022-01-05 23:07:00 394
原创 LeetCode 27.移除元素【快慢指针】
原题链接:移除元素对于初学者看不懂的可以看视频讲解,强推Leetcode 27 移除元素 【快慢指针】个人觉得B站视频的解法更直观理解,虽然本质上都一样。解题思路用两个指针,快指针和慢指针。快指针用来快速扫描数组元素判断数组元素是否等于val,慢指针用来计数,即最终返回的数组的长度。关键思想就是当快指针不等于val的时候,就把快指针的值赋值给慢指针的值,快慢指针同时往前移,此时相当于慢指针是计数有多少个有效值,先赋值一个,再往前移一个,顺序千万不能乱,先赋值再移动!当快指针遇到连续相等的val
2022-01-04 22:40:50 359
原创 LeetCode - 704.二分查找
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。示例 1:输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4原题链接:704.二分查找...
2022-01-04 20:32:00 100
原创 Qt QTableWidget 的 item 自适应宽度以及最后一列铺满最后
针对的是QtableWidget的函数①自适应宽度ui->tableWidget->resizeColumnToContents(0);ui->tableWidget->resizeColumnToContents(1);②最后一列铺满最后ui->tableWidget->horizontalHeader()->setStretchLastSection(true);...
2021-06-22 17:14:02 6240
原创 qt 中文字符乱码问题
这次是在main函数里整,屡试屡爽在main函数里①添加头文件#include <QTextCodec>②在main函数里定义添加如下代码 QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK")); QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK")); QTextCodec::setCodecForCStrings(QTextCo
2021-06-17 15:28:34 202
原创 如何连接网络打印机
连接网络打印机,顾名思义,就是在局域网内连接网络打印机,远程打印,可实现多台设备连接同一个打印机。设置步骤如下:①在一台已经连接上的电脑打开 记住这个端口,然后在新的电脑上手动填写。② 在新的电脑上手动填上。然后自动检测驱动安装就行了!...
2021-05-29 21:11:35 1104
原创 qt5.9.9中文字符乱码
本人的开发环境的IDE是QT Creator版本是5.9.9编译器是MSVC2015出现的问题是中文字符乱码,就是问好那种搜索了下,原因是因为MSVC编译器导致的解决方案:在要用到中文字符的头文件和源文件开头加上MSVC的一个宏:#if _MSC_VER >= 1600#pragma execution_character_set("utf-8")#endif例如解决方案出处:http://www.voidcn.com/article/p-wqwljgjy-bqp.ht
2021-04-17 22:47:39 385
原创 STC8A8K系列单片机的串口助手接收显示乱码
有没有小伙伴跟我一样用串口助手接收传感u器数据的时候显示乱码呢??(手动狗头doge)。。只需一招手动把晶振振荡器的频率改为 11.0592MHz
2021-04-09 11:33:59 1497 2
原创 opencv报错 : absort() has been called (press Retry to debug the application)
这个错误很奇妙,因为编译时能通过,但是运行时就报错了查了下资料这个报错是内存的问题百分百就是代码逻辑的问题,指针啊,变量啊这些,所以要回去查看代码逻辑是否有问题!我查了下,原来是我的一个变量分别在函数外与函数内分别用Mat定义了两次,内存就报错了,把函数内的定义去掉就正常运行了!贴上我的错误示范,请注意辨别…正确示范:...
2021-04-03 10:50:20 4811
原创 关于指针变量的思考
若有一个变量专门用来存放另一个变量的地址,那么就称它为“指针变量”。也就是说,指针变量里面存放的是指针,即地址。大家一定要区分“指针”和“指针变量”这两个概念。指针是一个地址,而指针变量是存放地址的变量。为了表示指针变量和它所指向的变量之间的联系,在程序中用“*”表示“指向”。如果定义变量 i 为指针变量,那么 *i 就表示指针变量i里面存放的地址所指向的存储单元里面的数据。指针变量的定义定义指针变量与定义普通变量非常类似,不过要在变量名前面加星号*,格式为:datatype *name;da
2021-03-27 22:04:27 606
原创 QT5的文字显示乱码问题
QT可以设置文字属性,例如设置窗口名称,但有时会显示乱码,这时只需要在头文件加上一句代码#pragma execution_character_set(“utf-8”)再qmake一下,编译一下,就可以正常显示!
2021-03-23 11:32:56 142
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人