- 博客(271)
- 资源 (27)
- 问答 (1)
- 收藏
- 关注
原创 Leetcode刷题笔记题解(C++):232. 用栈实现队列
/B栈用来pop 如果要获取队列的top,可以先把A栈元素依次弹出依次压入B栈中,然后B.top就是队列的top,pop也类似。//A栈用来push 可以利用A栈获取到队列的back即A.top。思路:双栈实现入队列和出队列的操作。//A+B栈来实现队列。
2024-03-04 21:44:58
290
原创 Leetcode刷题笔记题解(C++):92. 反转链表 II
思路:可以把需要反转的链表段拿出来进行反转,然后反转之后拼接进去。注意反转之后的头尾节点的拼接。
2024-02-29 22:25:01
328
原创 Leetcode刷题笔记题解(C++):6. Z 字形变换
到达0行的时候步进长度为+1;到达最后一行numRows-1行的时候步进长度为-1;思路:遍历时候需要更新步进长度。
2024-02-25 11:43:31
399
原创 Leetcode刷题笔记题解(C++):203. 移除链表元素
思路:不同的情况出现了,就是第一个节点要是为等于val的节点,可以新建一个节点,并next指向head,这样就可以遍历新的链表来删除节点。
2024-02-20 22:08:53
454
原创 Leetcode刷题笔记题解(C++):83. 删除排序链表中的重复元素
思路:链表相关的问题建议就是画图去解决,虽然理解起来很容易,但就是写代码写不出来有时候,依次去遍历第二节点如果与前一个节点相等则跳过,不相等则遍历第三个节点。
2024-02-20 21:48:03
461
原创 Leetcode刷题笔记题解(C++):面试题 08.07. 无重复字符串的排列组合
再用第二个元素与后面每一个元素进行交换,生成。思路:因为字符之间互不相同,故使用全排列的方式去解题;,将第一个字母分别与后面每一个字母进行交换,生成。
2024-02-08 18:53:29
424
原创 Leetcode刷题笔记题解(C++):590. N 叉树的后序遍历
思路:类似于二叉树的排序,这里需要将子树进行依次递归遍历,前序遍历也与之类似。
2024-02-06 22:31:44
355
原创 Leetcode刷题笔记题解(C++):1863. 找出所有子集的异或总和再求和
0 (选5) 5(不选5)思路如下:递归思路,依次遍历数组中的数,当前数要不要选择像二叉树一样去遍历如下图所示。
2024-02-04 22:05:52
442
原创 Leetcode刷题笔记题解(C++):99. 恢复二叉搜索树
二叉搜索树的中序遍历是递增序列,可以在中序遍历中记录两个需要交换的节点,直到遍历完毕之后,对两个节点的值进行交换即可得到正确的二叉搜索树。比如中序序列为 1 2 3 7 5 6 4(7比5大记录7为x,6比4大记录4为y,交换x与y)
2024-02-03 21:23:22
457
原创 Leetcode刷题笔记题解(C++):1117. H2O 生成(多线程)
5.当生产者生成的氢元素填满缓冲队列时,生产者唤醒被阻塞的消费者;当消费者消费掉缓冲队列的元素后,消费者唤醒被阻塞的生产者。1.把 hydrogen 线程看作生产者,oxygen 线程看作消费者,缓冲队列大小为2。oxygen 线程每次从队列里消费两个氢元素。4.消费者只有当缓冲队列满时才会从缓冲队列中消费元素,缓冲队列未满时消费者阻塞。3.生产者生产两个氢元素后会因为缓冲队列满而阻塞,使用条件变量使生产者阻塞。6.由于不需要对队列中的氢元素做操作,我们只需维护缓冲队列的大小即可。
2024-01-28 21:03:49
347
原创 Leetcode刷题笔记题解(C++):1114. 按序打印(多线程)
A先占用资源1和资源2,A线程完了之后释放资源1不释放资源2,然后B线程占用资源1,A线程完了之后释放资源1和资源2,这时候 C线程可以占用资源2并进行。保证A,B,C三个线程的顺序不会变,即优先级顺序的问题。A,B需要资源1,B,C需要资源2。
2024-01-27 20:58:43
338
原创 Leetcode刷题笔记题解(C++):1971. 寻找图中是否存在路径
3.遍历从起点开始能直接到达的点(即与起点相邻的点),判断那个点是否已经走过,并进入递归继续遍历与那个点相邻的点,直到抵达终点。1.建立图集,二维数组,path[0]里面存放的就是与0相连的节点集合。2.用布尔数组来记录当前节点是否被访问过,深度优先会使用到。
2024-01-26 21:33:00
410
原创 Leetcode刷题笔记题解(C++):LCR 153. 二叉树中和为目标值的路径
【代码】Leetcode刷题笔记题解(C++):LCR 153. 二叉树中和为目标值的路径。
2024-01-23 19:12:48
557
原创 Leetcode刷题笔记题解(C++):670. 最大交换
假设数字 9923676。从右边找最大的数字的下标maxindex,然后向左边寻找小于最大数字的数的下标,直到找到最左边,交换两者得出新的数字,比如从左到右递减的数字如9621则不需要变化,在寻找中记录这种数字。
2024-01-22 21:43:58
596
原创 Leetcode刷题笔记题解(C++):LCR 174. 寻找二叉搜索树中的目标节点
思路:二叉搜索树的中序遍历是有序的从大到小的,故得出中序遍历的结果,即要第cnt大的数为倒数第cnt的数。
2024-01-21 18:11:02
517
原创 Leetcode刷题笔记题解(C++):LCR 102. 目标和
思路:利用回溯去遍历,回溯结束条件为遍历到最后一个数字,如果符合target则目标数+1。
2024-01-21 11:10:22
552
原创 Leetcode刷题笔记题解(C++):200. 岛屿数量
思路:利用深度优先搜索的思路来查找1身边的1,并且遍历之后进行0替换防止重复dfs,代码如下所示。
2024-01-18 20:57:56
558
原创 Leetcode刷题笔记题解(C++):451. 根据字符出现频率排序
思想:利用map保存字符和出现的次数,然后遍历map得出出现次数从大到小的字符,并且按照出现次数来连接生成新的字符串。
2024-01-16 21:14:56
381
原创 Leetcode刷题笔记题解(C++):LCR 016.无重复字符的最长子串
利用滑动窗口的思想,用起始位置startindex和curlength来记录这个滑动窗口的大小,并且得出最长距离;
2024-01-06 12:06:46
491
原创 Leetcode刷题笔记题解(C++):224. 基本计算器
step 3:遇到左括号,则将括号后的部分送入递归,处理子问题;遇到右括号代表已经到了这个子问题的结尾,结束继续遍历字符串,将子问题的加法部分相加为一个数字,返回。step 4:当遇到符号的时候如果是+,得到的数字正常入栈,如果是-,则将其相反数入栈,如果是*,则将栈中内容弹出与后一个元素相乘再入栈。step 2:遍历字符串,遇到数字,则将连续的数字字符部分转化为int型数字。step 5:最后将栈中剩余的所有元素,进行一次全部相加。step 1:使用栈辅助处理优先级,默认符号为加号。
2023-12-17 22:55:58
701
原创 Leetcode刷题笔记题解(C++):25. K 个一组翻转链表
思路:利用栈的特性,K个节点压入栈中依次弹出组成新的链表,不够K个节点则保持不变。
2023-12-10 23:05:33
608
原创 Leetcode刷题笔记题解(C++):LCR 181. 字符串中的单词反转
思路:根据栈的原理先进后出,使用栈来依次保存每个单词,然后再依次从栈中取出每个单词。
2023-12-09 22:51:58
610
原创 Leetcode刷题笔记题解(C++):LCR 121. 寻找目标值 - 二维数组
思路:从左小角或者右上角开始遍历,假设右上角开始遍历,如果当前值大于目标值则列-1;如果当前值小于目标值则行+1,以此遍历来查找目标值;注意col和row的选取。
2023-12-07 22:05:18
643
原创 Leetcode刷题笔记题解(C++):165. 比较版本号
思路:利用小数点来分开求和,判断每个小数点隔开的和是否相等来推断两个版本号是否一致。
2023-12-07 21:56:55
509
原创 Leetcode刷题笔记题解(C++):BM11 链表相加(二)
思路:先对两个链表进行反转,反转求和注意进位运算,求和完成之后再进行反转得到结果。
2023-12-06 22:05:25
709
原创 Leetcode刷题笔记题解(C++):LCR 021. 删除链表的倒数第 N 个结点
思路:用双指针去遍历链表,删除left的下一个节点,注意的是n大于等于链表长度即删除第一个节点。
2023-12-05 22:51:49
617
原创 Leetcode刷题笔记题解(C++):1008. 前序遍历构造二叉搜索树
1.树中的第一个值为根(数组的第一个值),小于根的值存放在左子树中,大于根的值存放在右子树中;2.利用递归对左右子树。
2023-11-24 21:53:02
674
原创 【MFC开发(17)】高级列表控件List Control
1.介绍ListCtrl 高级列表控件也是我们平时编程过程中很常用的一个控件,一般涉及到报表展示、记录展示之类的,都需要ListCtrl 高级列表控件。例如:任务管理器啊,文件列表啊,等等都是ListCtrl 高级列表控件来实现的。常用属性介绍:Edit Lables 是否可编辑节点View 用来设置高级列表控件的风格,有以下四种风格Icon:为每个item显示大图标Small Icon:为每个item显示小图标List:显示一列带有小图标的item..
2022-05-26 21:20:56
6117
4
原创 【MFC开发(16)】树形控件Tree Control
1.树形控件的属性配置(1)Check Boxes :默认为false,如果选择为true的话每个节点前面会带有一个方框(2)Edit Labels:默认为false,如果选择为true的话每个节点的名称可以编辑修改(3)Has Buttons:默认为false,如果选择为true的话展开的节点前面会有加号或者减号(4)Has Lines:默认为false,如果选择为true的话会出现线如下所示(5) Lines At Root:默认为false...
2022-05-24 21:50:32
6320
2
原创 【MFC开发(15)】进度条控件Progress Control
1.进度条控件的常用方法首先给控件添加一个变量在dlg初始化函数钟进行方法的实现//进度条显示区域 //设置进度条的范围 m_progress.SetRange(0, 100); //设置进度条当前的位置 m_progress.SetPos(75); //获取当前进度条的位置 progress_pos = m_progress.GetPos(); //设置进度条每次步进的长度 m_progress.SetStep(1);2.利用定时器让进度条控件动起来(1...
2022-05-18 21:27:39
3624
1
原创 【MFC开发(14)】滑块控件Slider Control
Slider滑块控件,也是VC中比较常用的一个控件。一般而言它是由一个滑动条,一个滑块和可选刻度组成。用户可以通过移动滑块在相应的控件中显示对应的值。通常,在滑动控件附近一定有静态文本框控件或编辑框控件,用于显示相应的值。Tick Marks 为是否显示刻度线Auto Ticks 是否显示每个增量的刻度线2.控件的操作首先需要给滑动框添加一个变量 //设置滑动块的范围 m_slider.SetRange(0, 10); //设置当前的位置 m_slid
2022-05-17 21:11:10
4356
请教一下怎么用DynamicDataDisplay在chart上画散点图????
2019-05-21
TA创建的收藏夹 TA关注的收藏夹
TA关注的人