自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 资源 (1)
  • 收藏
  • 关注

原创 协程和多态

每一个包含虚函数的类或者子类的对象,都会在内存布局的开始位置,保留一个指向虚函数表的指针,这个指针通常叫做vptr。每一个含有虚函数的类(或者从含有虚函数的类派生出来的类)的对象在内存中都会有一些额外的存储开销。当子类重写了这个函数,编译器会生成一个新的函数实现,并且在子类的虚函数表中,将这个函数的条目改为指向新的实现。当你通过一个指向子类对象的基类指针调用这个虚函数时,运行时系统会根据存储在对象中的虚函数表指针(vptr)找到子类的虚函数表,然后调用表中对应函数的新的实现,实现运行时多态。

2024-01-29 16:46:46 483

原创 day38 代码回想录 斐波那契数&爬楼梯&使用最小花费爬楼梯

● 746. 使用最小花费爬楼梯。● 509. 斐波那契数。

2023-09-17 22:04:26 644

原创 day37 代码回想录 单调递增的数字&监控二叉树

计算监控树的所有节点所需的最小摄像头数量。减少遍历次数,优化时间复杂度为O(n)● 738.单调递增的数字。● 968.监控二叉树。

2023-09-17 21:59:58 664

原创 day36 代码回想录 无重叠区间&划分字母区间

对区间数组进行按照区间起点进行排序,遍历排序后的区间数组,如果前一个区间的结束 比 当前区间的开始要大,说明需要调整删除区间了,count加1并更新当前结束区间为结束的最小结束区间。// 再遍历字符串,当 i == 当前字符串的最后出现位置时,就是切割点。// 划分字符串,使同一字母最多出现在一个片段中,返回片段的数量。// 使用hash保存最后出现位置,使用vector返回结果。// 遍历字符串更新最后出现位置,存放到set数组内。删除区间数组的某些区间,使区间数组间没有重叠。● 763.划分字母区间。

2023-09-17 21:54:18 603

原创 day35 代码回想录 柠檬水找零&根据身高重建队列&用最少数量的箭引爆气球

这是一个拥有两个维度身高和体重的题目,需要固定一个维度,然后去考虑另一个维。本题使用的是固定身高,对身高重新排序,使用list来进行插入操作会比vector高效。用最少的箭射爆气球,对区间进行按照开始部分进行排序,如果区间不重叠,那么就需要一只箭,如果重叠,那么就更新当前i的右边范围为区间最小范围。思路是遍历bills顾客给的面值,用map记录5、10、20面值的数量,判断当前i处的面值能否使用之前的零钱找零。钱只有5、10、20的面值,一个柠檬水需要5个面值的钱。● 452. 用最少数量的箭引爆气球。

2023-09-17 21:44:12 492

原创 day34代码回想录 K次取反后最大化的数组和&加油站&分发糖果

从start开始时剩下的汽油数量singleLeft **,如果singleLeft 小于0了,那么说明以start开始的节点是行不通的,已经耗完了汽油。遍历完汽油数组后,如果totalLeft 还大于0,则返回start作为起点。本题的思路是对数组按照绝对值从小到大排序后,将排序后数组小于0的部分先进行反转,如果k还有,那么将绝对值最小值【nums[0]】进行反复反转,消耗完剩下的反转次数,则可以最大化数组和。本题比较难想到,需要遍历汽油数组,统计**走到当前节点总共剩下的汽油数量 totalLeft。

2023-09-17 21:30:57 412

原创 day32 代码回想录 买卖股票的最佳时机II&跳跃游戏&跳跃游戏II

● 122.买卖股票的最佳时机II● 55. 跳跃游戏● 45.跳跃游戏II。

2023-09-17 21:17:15 478

原创 day31 代码随想录 分发饼干&摆动序列&最大子序和

贪心的解法比较难想到解决办法,也没有太多规律,需要自己多熟悉。

2023-09-17 21:02:55 567

原创 day29 代码回想录 递增子序列&全排列&全排列 II

【代码】day29 代码回想录 递增子序列&全排列&全排列 II。

2023-09-10 23:09:07 402

原创 day28 代码回想录 复原IP地址&子集&子集II

复原ip地址,需要将字符串进行分隔,特别小心处理ip格式的判断。本题和上一题的区别是集合中的元素会重复,需要处理重复的子集。本题也是字符分割的题目,确定分割的点,作为递归参数传入。返回集合中元素可以组成的集合。● 93.复原IP地址。

2023-09-10 23:06:25 546

原创 day27 代码回想录 组合总和&组合总和II&分割回文串

回溯题解法有一定规律性,通过递归可以减少一层循环,将题目的解法抽象为二叉树,树的高度代表递归的深度,树的宽度代表循环选择。

2023-09-10 22:57:30 539

原创 day22 代码回想录 二叉搜索树的最近公共祖先&二叉搜索树中的插入操作&删除二叉搜索树中的节点

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

2023-09-10 21:23:22 494

原创 day21 代码回想录 二叉搜索树的最小绝对差&二叉搜索树中的众数&二叉树的最近公共祖先

本题需要验证二叉搜索树的节点间的最小差,注意是叶子节点的,● 530.二叉搜索树的最小绝对差。● 236. 二叉树的最近公共祖先。● 501.二叉搜索树中的众数。

2023-09-10 21:20:12 465

原创 day20 代码回想录 最大二叉树&合并二叉树&二叉搜索树中的搜索&验证二叉搜索树

本章节的二叉树算法在解题上有一定的相似性,需要多总结出适合自己的解题方式。

2023-09-10 21:05:53 517

原创 day18 代码回想录 二叉树05 找树左下角的值&路径总和&从中序与后序遍历序列构造二叉树

● 106.从中序与后序遍历序列构造二叉树 105.从前序与中序遍历序列构造二叉树。● 112. 路径总和 113.路径总和ii。● 513.找树左下角的值。

2023-09-10 20:31:01 668

原创 day17 代码回想录 二叉树04 平衡二叉树&二叉树的所有路径&左叶子之和

本题的解题思路是求最大深度和最短路径元素个数后,判断两者差是否小于1。3 没有想清楚递归结束条件,如果是root空怎么办,未处理。给定一个二叉树,返回所有从根节点到叶子节点的路径。1 忘记怎么把int 转string。2 忘记vector删除最后元素接口。● 257. 二叉树的所有路径。● 110.平衡二叉树。● 404.左叶子之和。

2023-08-27 23:18:53 249

原创 day16 代码回想录 二叉树03 二叉树的最大深度&n叉树的最大深度&二叉树的最小深度&完全二叉树的节点个数

本题解题思路和二叉树的最大深度是一样的,但是需要特别注意n叉数的最大深度递归的结束条件需要。本题的解题思路和二叉树的最大深度还是有些不一样的,需要判断是否是叶子节点。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。本题的解题思路是使用后序遍历来统计节点个数。叶子节点是左右孩子节点都为空的节点。● 222.完全二叉树的节点个数。● 104.二叉树的最大深度。● 559.n叉树的最大深度。● 111.二叉树的最小深度。递归单层循环是节点的。

2023-08-27 23:07:05 199

原创 day15 二叉树02 二叉树的层序遍历&翻转二叉树&对称二叉树

递归写起来会比迭代更加容易,需要想清楚递归的3大要素:递归参数返回值、递归结束条件、递归单层循环。

2023-08-27 22:43:18 337

原创 day14 二叉树01 二叉树的遍历

中 -> 左 -> 右 ----> 中 - > 右 -> 左 -----> 左 -> 右 -> 中。二叉树的中序遍历使用迭代法和前序有很大的区别,思路上需要使用到栈+指针,指针记录当前访问的节点。前序遍历 ----> 交换左右节点 再逆序 -----> 后序遍历。递归法是修改下中序遍历的递归法的语句顺序就好了。访问节点顺序是 左 -> 中 -> 右。节点访问顺序是:左 -> 右 -> 中。

2023-08-27 22:11:52 144

原创 day13 代码回想录 栈和队列3 滑动窗口最大值&前 K 个高频元素

本篇的两道题目比较有难度,就算知道思路实现起来也不容易。使用到了单调队列及优先队列,需要实现比较函数。

2023-08-27 21:50:12 92

原创 day11 代码回想录-栈与队列part02-有效的括号&删除字符串中的所有相邻重复项&逆波兰表达式求值

逆波兰表达式其实就是后缀表达式求值,模拟计算机计算表达式的过程。思路是使用栈保存操作数,遇到操作符则取出栈中元素做计算,之后再把结果放回栈中。【特别要注意栈中元素放回顺序和实际顺序相反】本题也是使用栈来解决,不断消除相邻相同的元素。剩下栈中的元素需要逆序。● 1047. 删除字符串中的所有相邻重复项。需要注意处理栈为空的情况和注意操作数顺序。● 150. 逆波兰表达式求值。使用栈来实现,当为**{[(题目需要判断括号是否匹配。右边**单个括号的情况。● 20. 有效的括号。

2023-08-27 21:23:35 94

原创 链表2-两两交换链表中的节点&删除链表的倒数第N个节点&链表相交&环形链表II

今天记录的题目:● 24. 两两交换链表中的节点● 19.删除链表的倒数第N个节点● 面试题 02.07. 链表相交● 142.环形链表II题目链接:24. 两两交换链表中的节点这题比较简单,记录好两个节点,交换其next指向删除链表的倒数第N个节点题目链接:19. 删除链表的倒数第 N 个结点解题思路是利用快慢指针,先让快指针前进N步,然后快慢指针一起移动,直到快指针抵达链表末尾,此时慢指针处就是需要删除的元素。链表相交题目链接:面试题 02.07. 链表相交题目链接:142. 环

2023-08-21 00:15:13 91

原创 代码随想录-栈和队列01 232.用栈实现队列&225. 用队列实现栈

本题实现队列,可以使用两个栈来模拟实现队列的接口。本篇需要了解栈和容器的基本概念及实现原理。● 225. 用队列实现栈。● 232.用栈实现队列。

2023-08-20 01:54:37 195

原创 代码随想录-字符串01 344.反转字符串&541. 反转字符串II&替换空格&翻转字符串里的单词&左旋转字符串

上面的解法使用到了O(n)的额外空间及substr字符串函数,尽量别使用库函数来实现。解题的思路比上一题复杂一点,但是思路还是一样的,不同之处在于外层多了循环。主要思路是先统计空格个数,对数组扩容,利用双指针从数组尾部往前填充。解法是通过双指针从字符串数组两边向中间靠拢,交换字符。很经典的字符串考察点,考察对双指针的熟悉程度。● 剑指Offer58-II.左旋转字符串。思路是找到空格,分割单词,然后填充到str。O(n + n) 空间 O(n)● 151.翻转字符串里的单词。● 541. 反转字符串II。

2023-08-20 01:47:50 167

原创 代码随想录-哈希表02 第454题.四数相加II&383. 赎金信&第15题. 三数之和&第18题. 四数之和

本篇的几道题目思路是不一样的,其中第454题.四数相加II和383. 赎金信是典型的哈希表应用,而第15题. 三数之和使用哈希表也能解,但是解题过程有复杂的逻辑处理,而使用双指针则会高效得多。第18题. 四数之和则是在三数之和的基础上再次套了一个for循环。

2023-08-20 01:23:33 263

原创 代码随想录-哈希表01 242.有效的字母异位词&349. 两个数组的交集&1. 两数之和

今天使用到的主要思维是使用哈希表来解题,可以降低算法的时间复杂度。在使用C++容器过程中发现对容器了解不多,基本使用如 初始化、Insert等基础操作不熟悉。哈希表是个宽泛概念,之前我狭义理解为map,但其实还有set、数组等。

2023-08-20 00:50:55 104

原创 链表2-移除链表元素&设计链表&反转链表

链表题目优化多在于可以加入临时节点,来减少if else的逻辑判断必须考虑删除 插入head部分时,对现有head的更新。

2023-08-13 22:47:44 159

原创 有序数组的平方 && 长度最小的子数组 &&螺旋矩阵II

/ 修改3:修改2之后发现思路有点问题,思路一开始是对的,双指针,但是指针从哪开始没有想清楚,推倒重来,双指针从两边开始向中间靠,返回数组从最后往前面填。// 修改1:区分reserve 和 resize ,reserve后 直接[]访问元素是会崩溃的,只是分配好空间。// 找到0附近绝对值最小值,定义两个指针分别指向最小值和其相邻,然后向左右分别移动。// 修改2:没有get到要点,left right需要指向数组中最小的两个元素。// 修改4:突然发现一直把sqrt当成为了平方了,真是自己傻了。

2023-08-10 20:32:13 2301

原创 二分查找&删除数组target元素

/ 在不同编译器下,for (auto i = data.size() - 1;// 中的i 被推导为不同类型,mingw下是未定义类型,msvc下是unsigned __int64。// 它们都会导致越界问题,因为是无符号类型,永远不可能小于0,所以不能滥用auto。// 数组的下标写错了data.size(),导致数组越绝访问崩溃。// 函数崩溃,猜测是数组越界问题,但是没发现问题在哪?// 移除数组内target元素,且保持剩下元素连续。// 时间复杂度O(n^2)// 想法是遍历+移动元素。

2023-08-10 20:22:00 2082

原创 解决子控件设置MouseArea点击没有反应

propagateComposedEvents属性:鼠标事件是否会自动传播到堆叠顺序中较低的其他MouseArea中,默认是false。在实际项目中发现,官方案例给的实际上会出现子控件的点击事件被父控件屏蔽了,而且会提升触发父控件和子控件的点击事件。我测试过点击蓝色区域也会触发黄色区域的onClicked。可以看到两个区域的onClicked都只触发了一次。

2023-06-14 21:10:57 505

原创 实现控件跟随窗口大小变化自适应调整位置

需要实现子控件随着窗口大小调整居中,需要使用到Layout,主要有ColumnLayout、GridLayout、RowLayout和StackLayout。

2023-06-14 21:05:39 4050

原创 qt5.15.8安装android编译环境

设置sdk路径,创建一个空目录,点击 sdk路径 会下载 commandlinetools 并解压。如果不是,则需要手动去android官网下载旧版本的 cmdline-tools。下载qt安装器,在线安装qt5.15.8,安装时注意勾选android编译器。修改sdk路径下 cmdline-tools,可以查看文件中的版本号。我这里使用的是6.0版本的 cmdline-tools。设置jdk路径,5.x的qt版本要jdk1.8版本的。编辑->首选项->设备->Android。

2023-05-30 20:54:53 574

原创 qml使用基础

如:qmlplugindump -nonrelocatable My.Module 1.0 /import/path > /import/path/my/module/plugins.qmltypes。// 网上下载qml项目,打开.pro文件,我本机使用qt5.15.0及vs2019编译环境,需要在release模式下才能生成plugin.qmltypes文件。%build_kit_dir\bin\qmlplugindump.exe qml插件install后生成plugin.qmltypes文件。

2023-05-23 10:28:45 729

原创 解决VS编译中文报错 error C2001:常量中有换行符

产生原因:文件中有中文字符,但是文件是utf-8格式的,使用msvc编译器编译时就会产生上述错误解决办法:方式1: 通过把源文件转换为gbk编码,但是只能一个一个文件转换,当导入项目文件较多时,这个方式明显不太好。当然也可以通过python脚本批量转换,但是还是比较麻烦方式2: 通过在项目里设置编译选项,/utf-8 项目->右键属性->C/C++ -> 命令行,在下方输入框添加/utf-8,就会在编译时采用utf-8编码...

2021-08-31 18:38:59 24357 8

原创 2020-09-30 mysql表不能插入中文问题

Error:mysql Incorrect string value: '\xE8\xB5\xB5\xE9\x9B\xB7' for column 's_name' at row 1原因可能是编码问题:查看数据库字符编码:SHOW VARIABLES like 'char%';修改表的字符编码:修改数据库的字符编码:查看表创建语句:show create table Student;CREATE TABLE `Student` ( `s_id` varchar(10.

2020-09-30 15:54:19 475

原创 ARTS 第 2周

1.Algorithm:每周至少做一个 leetcode 的算法题2.Review:阅读并点评至少一篇英文技术文章3.Tip:学习至少一个技术技巧4.Share:分享一篇有观点和思考的技术文章

2020-06-06 15:39:31 338

原创 ARTS 第 1 周 - 二叉树的前序遍历

ARTS 第 1 周 - 二叉树的前序遍历Algorithm描述解题思路ReviewTipShareAlgorithm描述144. Binary Tree Preorder TraversalGiven a binary tree, return the preorder traversal of its nodes' values.Example:Input: [1,null,2,3] 1 \ 2 / 3Output: [1,2,3]Follo

2020-05-24 19:34:57 303

原创 QT qSort 的使用

QT qSort的使用基本用法自定义排序基本用法QList < int > list;list << 55 << 1 << 88 << 12 << 69 << 1020 << 2;qSort(list.begin(), list.end()); // 此处默认时调用 return a <...

2020-04-08 15:28:02 1877

原创 windows定时任务指南

1 添加定时任务(1)win+R ,输入compmgmt.msc(2)点击任务计划程序库(3)点击创建基本任务选择启动的bat脚本,这里的路径尽量不要有中文 括号等特色字符,不然可能会任务执行找不到bat文件点击完成就OK!附:taskkill /F /IM HuaWeiScalpTool.exe# %cd%获取当前bat文件所在目录set b=%c...

2020-03-03 11:41:50 340

原创 qt5.9.2 下配置opengl!(有坑)

OpenGL是一个应用程序编程接口API,其实就是一个方便访问计算机图形硬件的封装库。有几个概念需要说下:模型:由几何里点线面组合而成的数据集渲染:计算机从模型创建出图形的过程。着色:被编译为GPU执行的代码。Opengl包含编译工具,把着色的源码编译。OpenGL是一个操作计算机图形的集合,它包含多种库。常见的如glfw、glut、freeglut等。本文通过下载fr...

2020-02-04 17:02:22 1822 3

xpath_test.rar

使用qxmlquery实现python中xpath模块功能,适用于c++下xpath解析 思路是使用doc将xml文件加载到内存,再设置model,通过model去结合query来搜索文档

2020-05-18

空空如也

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

TA关注的人

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