自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【动态规划】C++简单多状态dp问题(打家劫舍、粉刷房子、买卖股票的最佳时机...)

本文通过一系列例题进行对 简单多状态的dp问题的理解

2024-04-20 13:50:46 911

原创 【动态规划】dp 路径问题(不同路径、路径最小和、地下城游戏...)

本文首先通过一篇文字理解动态规划与使用dp数组,最后用一些算法题详解解决动态规划中的路径问题

2024-04-19 15:18:20 450

原创 【动态规划】C++解决斐波那契模型题目(三步问题、爬楼梯、解码方法...)

动态规划是一种解决复杂问题的算法设计技术,通常用于解决具有和性质的问题。它将问题分解成较小的子问题,通过解决这些子问题并保存其结果,最终构建出原问题的解。:问题可以被分解为相同的子问题,并且这些子问题在求解过程中会被多次重复计算。:问题的最优解可以由其子问题的最优解来构造。

2024-04-18 14:45:11 750

原创 【Qt学习】了解Qt文件系统 + 利用QFile类实现记事本功能

文件操作是应⽤程序必不可少的部分,Qt作为一个通用开发库,提供了丰富的文件操作类,使得应用程序能够方便地进行文件系统操作。QIODevice是 Qt 中用于处理输入输出操作的抽象基类,它为文件、网络套接字、串口等设备提供了统一的接口。下面是QIODevice的子类QIODevice 子类描述QFile用于读写文件QBuffer在内存中创建缓冲区进行数据读写QProcess用于启动外部进程并进行通信处理网络请求响应数据QTcpSocket用于 TCP 网络套接字通信。

2024-03-28 09:03:49 635

原创 网络基础 - 预备知识(协议、网络协议、网络传输流程、地址管理)

本文介绍了网络基础内容,预备知识:认识协议;了解网络协议,包括协议分层的引入与OSI七层模型和TCP/IP四层模型;以及网络传输的流程:包括流程图,报头的概念,以及封装解包的传输过程;最后是网络中的地址管理。

2024-03-14 19:36:14 902

原创 【Qt学习】QProgressBar的使用(进度条的实现)

详细的 QProgressBar 内容可以通过查阅Qt官方文档,这里进行简要的总结:可以水平或垂直显示,可以根据需要设置最小值和最大值,以及当前的数值,从而控制进度条的显示。提供了一些方法来控制进度条的外观和行为,比如设置进度条的最小值和最大值、设置进度条的文本显示格式、设置进度条的样式表等。属性名描述value表示当前进度的数值minimum表示进度的最小值maximum表示进度的最大值表示是否显示进度条上的文本alignment表示文本对齐方式format。

2024-03-07 10:02:18 937

原创 【Qt学习】QDial 与 QSlider 的 介绍与使用(利用控件 控制窗口透明度 / 窗口大小)

本文介绍了Qt的两个控件:QDial与QSlider,分别介绍了其核心属性,以及相关实例应用(用QDial控制窗口不透明度、用QSlider控制窗口大小)

2024-03-06 19:35:51 912

原创 【Qt学习】QSpinBox 与 QDateTimeEdit 控件 的介绍与实例()

对于QSpinBox,我们可以查阅Qt的官方文档进行了解:这里简单进行总结:QSpinBox,即微调框,用于提供一个用于输入整数值的微调控件。通常用于需要用户输入特定范围内整数值的界面。QSpinBox提供了一个带有箭头按钮的文本字段,用户可以通过点击箭头按钮或手动键入来增加或减少值。它还提供了一些附加功能,如设置最小值、最大值和步长。下面是QSpinBox的属性描述value当前SpinBox中显示的整数值minimum允许输入的最小整数值maximum允许输入的最大整数值。

2024-03-02 15:08:40 927

原创 【Qt学习】QTextEdit 与 QComboBox 的 属性与实例(槽函数的使用、读取本机内容到控件)

我们可以查阅官方文档,对QTextEditQTextEdit 是 Qt 框架中用于显示和编辑富文本内容的组件。QTextEdit有以下属性描述documentQTextEdit 中的文本内容存储在一个 QTextDocument 对象中。plainText获取或设置 QTextEdit 中的纯文本内容。textCursor返回当前 QTextEdit 中的光标位置。设置 QTextEdit 是否接受富文本格式的输入。readOnly设置 QTextEdit 是否为只读状态。

2024-03-01 16:08:35 907

原创 【Qt学习】QLCDNumber的介绍与实例使用(倒计时功能)

QLCDNumber是Qt框架中用于显示数字的控件,它模拟了一个液晶数字显示屏。有以下属性描述intValue获取或设置QLCDNumber显示的整数值。获取或设置QLCDNumber显示的浮点数值。mode获取或设置QLCDNumber的显示模式。获取或设置QLCDNumber的段样式。frameShape获取或设置QLCDNumber的框架形状。获取或设置QLCDNumber的框架阴影效果。digitCount获取或设置QLCDNumber显示的数字位数。

2024-03-01 15:24:24 418

原创 【Qt学习】多元素控件:QListWidget、QTableWidget 的介绍与使用

是 Qt 框架中用于显示列表项的控件,它支持显示文本、图标等信息,并且可以允许用户通过交互选择其中的项。有以下核心函数(方法)函数描述addItem在列表中添加新的数据项insertItem在指定位置插入新的数据项takeItem从列表中移除指定的数据项并返回该数据项clear清空列表中所有的数据项sortItems根据指定的方式对列表中的数据项进行排序滚动列表以确保指定的数据项可见设置列表中的选择模式,可以为单选、多选等设置列表中的拖放功能是否启用。

2024-02-29 12:44:51 1169

原创 【Qt学习】QRadioButton 的介绍与使用(性别选择、模拟点餐)

这里简单对QRadioButton类进行介绍继承自,用于创建单选按钮;对于父类的属性和⽤法, QRadioButton 同样适⽤。由于QRadioButton继承自QAbstractButton类,因此拥有了一些与按钮相关的属性和方法。其中一个重要的属性就是check属性,用于判断按钮是否被选中。有以下三属性属性说明检查是否允许被选中checked()检查是否已被选中是否排他:即当选中该按钮后是否会取消对其他按钮的选择(QRadioButton默认排他)

2024-02-24 23:02:20 940

原创 【Qt学习】QPushButton添加图标 并通过快捷键控制该图标

我们知道:QPushButton表示一个按钮用于响应用户的点击事件。QPushButton可以显示文本、图标或同时显示两者,也可以设置按钮的样式和状态。用QPushButton设置图标,并设置快捷键控制该图标。

2024-02-23 20:33:50 680

原创 【Qt学习】QWidget的styleSheet属性与实例(日/夜间模式、RGB颜色的表示)

我们以此对styleSheetstyleSheet 样式表是一种可以通过文本描述来自定义控件外观的强大工具,它类似于网页开发中的CSS(层叠样式表)。在Qt中我们称为QSS。

2024-02-23 19:01:04 402

原创 【Qt学习】QLineEdit 控件 属性与实例(登录界面,验证密码,正则表达式)

文章介绍了1. QLineEdit 控件的属性、以及三个实例:登录界面、密码对比、显示输入框内容;以及2. 正则表达式的概念,QRegExp的概念、使用,以及利用正则表达式对文本框QLineEdit的内容进行验证。

2024-02-22 20:36:50 1330

原创 【算法】递归、回溯、剪枝、dfs 算法题练习(组合、排列、总和问题;C++)

文章主要关于使用dfs利用递归、回溯、剪枝的方法解决相关算法题:括号生成、目标和、组合总和、字母大小写全排列、优美的排列等

2024-02-21 13:57:01 1363 1

原创 【Qt学习】QWidget的font属性 与 toolTip属性 的介绍与实例使用

文章介绍了QWidget的两个常用属性:font属性(当前为该控件设置的字体)和toolTip属性(当前为该控件设置的字体);并分别通过代码实例对两种属性进行了应用

2024-02-21 11:53:07 1104

原创 【Qt学习】QWidget的cursor属性 - 介绍与使用(设置光标)

这个属性定义了小部件的光标形状。当鼠标悬停在该小部件上时,光标将采用此形状。预定义的光标对象列表提供了一系列有用的形状。该属性有下面四种接口API说明QCursorcursor()const获取小部件的当前光标对象。如果未设置光标,则返回父窗口的光标对象或默认的箭头光标对象void设置小部件的当前光标对象为给定的光标对象void清除小部件的当前光标对象并恢复父窗口的光标对象或默认的箭头光标对象。

2024-02-20 11:17:02 601

原创 【Qt学习】QWidget的windowOpacity属性介绍与实例使用(双重检查的引入)

我们可以查阅qt的官方文档:windowOpacity() 表示窗口的不透明度级别。有效的范围是从1.0(完全不透明)到0.0(完全透明)。默认情况下,该属性的值为1.0API说明获取控件的不透明度,并返回float类型设置控件的不透明数值。

2024-02-20 10:54:53 416

原创 【Qt学习】QIcon类 + 利用qrc机制设置图片路径(QtCreator)

setIcon()是用于设置窗口部件(如按钮、标签等)的图标。它可以将一个 QIcon 对象设置为窗口部件的图标,用于在界面中显示该部件的图标。通过setIcon()设置的图标将会显示在指定的窗口部件上。是用于设置顶级窗口(如主窗口、对话框等)的图标。它可以将一个 QIcon 对象设置为顶级窗口的图标,用于在窗口的标题栏、任务栏等位置显示该图标。通过设置的图标将会显示在窗口的标题栏、任务栏等位置。

2024-02-13 17:27:15 1730

原创 【Qt学习笔记】Qt Creator环境下 信号与槽 详解(自定义信号槽、断连、lambda表达式等)

当QT提供的标准信号槽无法满足需求时,我们可以设计所需的信号与槽的功能,最后通过connect连接以实现功能。当我们编写新的类时,要让其继承Qt的某些标准类继承自QObject:类必须直接或间接地继承自QObject,以便能够使用信号和槽机制Q_OBJECT 宏:在类的声明中,使用Q_OBJECT宏进行标记。信号与槽函数声明:在类内部声明自定义信号和槽函数。信号声明只需要在signals部分声明,槽函数声明则需要在public slots或private slots部分声明。

2024-02-07 22:08:56 1527

原创 【算法】{画决策树 + dfs + 递归 + 回溯 + 剪枝} 解决排列、子集问题(C++)

dfs问题我们已经学过,对于排列、子集类的问题,一般可以想到暴力枚举,但此类问题用暴力解法 一般都会超时,时间开销过大。对于该种问题,重点在于尽可能详细的画决策树,随后根据决策树分析 题目所涉及的剪枝、回溯、递归等细节问题。根据决策树的画法不同,题目会有不同的解法,只要保证决策树没有问题,保证细节问题下 代码一定可以编写出来。

2024-02-04 17:05:26 2238

原创 【算法】利用递归dfs解决二叉树算法题(C++)

我们曾学过前序遍历,其就是深度优先搜索的一种应用。在二叉树的前序遍历中,我们首先访问根节点,然后递归对左子树进行前序遍历,最后递归地对右子树进行前序遍历。在深度优先搜索算法中,我们从起始节点开始,递归地探索每个可达节点,直到没有未访问的相邻节点为止。因此,前序遍历也可以看作是对图或树进行深度优先搜索的一种方式。它遵循先访问根节点,然后递归地访问左子节点和右子节点的顺序。

2024-02-03 15:07:33 948

原创 【算法】以汉诺塔理解递归、并用递归解决算法题

我们在学习数据结构 / 做算法题时,如二叉树、快排,归并等,会使用递归写代码。我们知道:递归就是函数调用自身的情况。而我们在写一个递归函数时,分为两个部分:终止条件(函数出口)和递归体。

2024-02-03 13:24:44 935

原创 【算法】BFS解决拓扑排序类算法题(C++)

在数据结构中我们学过 拓扑排序以及图的相关知识,在这里我们进行简单的复习↓在数据结构拓扑排序是一种对有向无环图(DAG)进行排序的算法。在对于我们下面的解题,可以理解为拓扑排序是确定任务执行顺序的如果图中存在环路,那么该图就没有拓扑排序,可以由此利用拓扑排序判断图是否有环。

2024-01-30 20:20:51 1048

原创 【算法】BFS算法解决多源最短路问题(C++)

此前我们对 单源最短路 问题进行的讲解:画图来说,单源最短路问题即为:而对于多源最短路问题:自然是 利用BFS算法解决,下面提出解法:当我们将所有的源点作为一个源点来进行解题时,问题又变成了单源最短路问题,而为什么可以认为这种解法是正确的呢?我们对于 单源最短路 问题的bfs解法为:自然,对于 多源最短路 的bfs解法为:542.01矩阵1020.飞地的数量1765.地图中的最高点1162.地图分析

2024-01-28 20:30:26 978

原创 【算法】使用BFS算法(队列、哈希等)解决最短路径问题(迷宫、基因变化、单词接龙、高尔夫)(C++)

我们这里主要探讨权值为1的最短路问题。而对于权值为1的最短路问题:即不考虑每个路径点的值,只考虑最短的路径是什么即可。

2024-01-24 11:24:08 925

原创 【算法】利用模拟算法、规律解算法题(C++)

模拟算法即模拟问题过程来解决问题的算法。对于一些算法题,我们只需要将题目的过程 用代码编写出来,再结合其他方法,就可以解决。

2024-01-22 09:08:21 1016

原创 【算法】使用优先级队列(堆)解决算法题(TopK等)(C++)

优先级队列是一种常用的数据结构,用于解决许多算法问题。基于堆(Heap)实现,在每次操作中能够快速找到最大或最小值。使用优先级队列的典型算法问题包括:Top K 问题:查找列表中前 K 个最大或最小的元素。合并 K 个排序数组:将 K 个已排序的数组合并为一个有序数组。Dijkstra 算法:在加权图中找到从起点到目标节点的最短路径。Huffman 编码:使用最小堆构建前缀编码树来压缩数据。下面会挑选一些算法题并使用优先级队列进行解题。

2024-01-19 20:44:38 885

原创 【算法】队列+bfs算法 解决树的相关算法题(C++)

队列与宽度优先算法(BFS)是解决很多算法问题的常见工具。BFS通过逐层遍历图或树的节点来寻找解决问题的最短路径或最短步骤。使用队列可以很好地支持BFS算法的实现。创建一个空队列,并将起始节点放入队列中。创建一个集合用于记录已经访问过的节点,防止重复访问。(visited数组,一般用于路径、迷宫问题)初始化其他必要的辅助数据结构,例如距离数组或状态数组等。开始循环,直到队列为空:从队列中取出一个节点作为当前节点。如果当前节点是目标节点,说明找到了解,结束搜索。

2024-01-17 22:20:04 1008 1

原创 【算法】使用栈解决一系列算法题(匹配、表达式、模拟)(C++)

栈适合解决需要后进先出(LIFO)的结构的相关算法题,本文根据对五道算法题的讲解,主要就使用栈模拟、计算表达式、匹配问题等

2024-01-16 21:00:17 913

原创 【算法】算法(模拟、指针等)解决字符串类题目(C++)

字符串题目有很多种,这里筛选几个考察模拟、双指针等的题目,并用相关算法解决。

2024-01-15 17:50:52 916

原创 【算法】了解哈希表/思想 并用哈希解算法题(C++)

简单了解哈希表并使用思想解算法题

2024-01-14 22:41:24 972

原创 【算法】链表题的常用技巧及算法题(C++)

通过对链表常用技巧、操作的介绍首先通过几道例题进行使用;后通过一系列算法题进行链表题的熟练

2024-01-10 14:35:56 1078

原创 【算法】利用分治思想解算法题:快排、归并、快速选择实战(C++)

分治法将问题划分成多个相互独立且相同或类似的子问题,然后递归地解决每个子问题,并将结果合并以得到原始问题的解。分治思想通常包含以下三个步骤:分解解决合并核心思想是将一个复杂的问题分解成多个简单的子问题,通过递归地解决子问题,最终将子问题的解合并成原始问题的解。等。优缺点优点在于能够有效地降低问题的复杂度,提高算法的效率。缺点在于需要额外的空间和时间来处理子问题的合并过程。

2024-01-02 18:12:24 1054

原创 【算法】一维、二维前缀和 解决算法题(C++)

文章首先简要介绍前缀和算法,通过一道例题引入一维前缀和的模板,随后用多道算法题进一步加深对前缀和的使用、后用一道题引入二维前缀和的模板及使用。前缀和算法用于高效地计算数组或序列中某个区间内元素的和。前缀和数组是一个辅助数组,其每个元素存储原始数组从开头到当前位置的元素和。通过提前计算前缀和数组,可以在O(1)的时间复杂度内快速计算出任意区间内的元素和。

2024-01-02 17:20:58 993

原创 【算法】使用位运算解算法题(C++)

文章首先对于位运算进行一个基础介绍,然后根据其基础引出一些基础特性,通过对这些基础特性的使用,可以解决一些算法题

2023-12-28 16:08:09 996

原创 【算法】运用滑动窗口方法解决算法题(C++)

滑动窗口算法通常用于解决。该算法的基本思想是维护一个固定大小的窗口,通过该窗口在字符串或数组上滑动,从而寻找符合条件的子串或子数组。在每次窗口滑动时,我们只需要对窗口内的元素进行简单的更新,以便快速得到新的结果。文章通过一道题进行对滑动窗口算法的引入,再通过多道例题详解进一步加深对滑动窗口法的理解和运用。

2023-12-27 15:47:00 858

原创 【算法】利用双指针法解决算法题(C++)

双指针并非真正意义上的指针,实际上一般使用下标表示/代替。通常用于处理数组或链表等数据结构。主要思想是使用两个指针在数组或链表中进行迭代、比较或操作。通过对一系列算法题理解双指针法的使用。

2023-12-24 15:18:32 945

原创 【算法】使用二分查找解决算法问题:理解二分法思想,模板讲解与例题实践

文章通过两道例题进一步对二分算法的思想、性质和朴素模板进行总结,随后分析相关内容、最后再一同解决多道算法题

2023-12-22 21:31:46 812

空空如也

空空如也

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

TA关注的人

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