自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 char、signed char和unsigned char的区别

在表示字符时具有相同的大小,但有符号性和取值范围上有所不同。根据需要,可以选择合适的类型来表示字符。是三种不同的字符类型,它们在表示字符时有一些区别。

2024-04-13 09:54:49 214

原创 python读写json文件详解

模块来读写JSON格式的文件。在这个示例中,首先定义了一个字典。变量中,最后打印出加载的数据。在Python中,可以使用。文件,并将读取的数据加载到。

2024-03-06 15:33:09 345

原创 python pandas写入csv

参数表示不将DataFrame的索引写入文件。如果要包含索引,可以将。方法将DataFrame对象写入CSV文件。在Python的Pandas库中,可以使用。方法将DataFrame对象。

2024-02-29 21:30:55 387

原创 C++的三种访问权限详解

在C++中,类的成员有三种访问权限:public、protected和private。这些访问权限确定了类的成员对外部访问的可见性和限制。访问权限对于类的封装性和数据隐藏至关重要。通过合理设置访问权限,可以控制外部对类成员的访问,提高代码的安全性和可维护性。

2024-02-28 19:35:56 449

原创 alloca和malloc的区别

适用于需要在函数中临时分配一块内存空间,且无需手动管理内存的情况。但由于其可移植性较差,一般建议在实际开发中优先考虑使用。或其他标准的内存分配函数。

2024-02-28 16:53:24 260

原创 C++ 虚函数、纯虚函数、虚函数表

虚函数表是一个存储类的虚函数地址的数组,每个含有虚函数的类都有一个对应的虚函数表。这样,当调用一个虚函数时,实际上是通过对象的虚函数表找到对应的函数地址来调用的。在C++中,虚函数是一种在基类中声明为虚函数并在派生类中重新定义的函数。虚函数使得在运行时能够根据对象的实际类型来调用相应的函数实现,而不是根据指针或引用的静态类型来确定。:在基类中声明但没有定义的虚函数,派生类必须重写这个函数。虚函数的使用可以实现多态性,使得程序能够根据对象的实际类型来调用相应的函数,而不需要在编译时确定。

2024-02-28 15:15:45 352

原创 QMessageBox入门

是Qt中用于显示消息框的类,可以用于显示各种类型的消息、提示、警告和错误信息。的基本用法,包括显示不同类型的消息框、自定义按钮以及根据用户的选择执行相应的操作。是Qt中用于显示消息的常用类,可以方便地在应用程序中添加消息提示功能。

2024-02-27 21:53:16 390

原创 QScrollArea入门

是Qt中的滚动区域类,用于在窗口中显示超出可视区域的内容,并提供滚动条进行浏览。的基本用法,包括添加小部件、设置滚动条策略、调整大小、滚动到特定位置和隐藏滚动条。是一个非常有用的控件,可以帮助在Qt应用程序中处理大量内容并提供滚动浏览的功能。

2024-02-27 15:52:55 441

原创 QToolButton入门

是Qt中的工具按钮类,通常用于工具栏或工具栏中的下拉菜单。它可以显示图标、文本或同时显示两者,并可以响应用户的点击事件。的基本用法,包括显示图标、文本或同时显示两者,设置工具提示,并响应点击事件。是Qt中非常常用的控件之一,可以用于创建各种工具栏按钮和工具栏下拉菜单。

2024-02-24 22:38:21 345

原创 QPixmap入门学习

是Qt中用于处理图片的类,可以加载、显示和操作图片。的基本用法,包括加载、显示、调整大小、旋转和保存图片。,可以在Qt应用程序中方便地处理和操作图片。

2024-02-24 22:36:05 345

原创 QWidget、QDialog、QMainWindow 的异同点

的实例,并展示了它们的基本用法和区别。在这个示例中,分别创建了一个。

2024-02-24 10:38:21 119

原创 Python asyncio的理解与入门

asyncio是Python标准库中用于编写异步代码的模块,它提供了一种基于协程的方式来处理并发任务。使用asyncio可以编写高效的异步程序,利用事件循环在单个线程中管理多个任务的执行。下面是asyncio。

2024-02-20 20:32:09 195

原创 Linux下如何配置环境变量

在Linux下配置环境变量通常有几种方法,具体取决于你希望将环境变量设置为全局还是仅对当前会话有效。无论你选择哪种方法,都应该小心编辑配置文件,并确保你知道你正在做什么,以避免不必要的问题。形式的行,每行一个环境变量,然后重新登录或重启系统使其生效。:要使环境变量在所有用户和会话中永久生效,可以编辑。:如果你只想在当前会话中临时设置环境变量,可以使用。:如果你只希望对当前用户永久设置环境变量,可以编辑。注意,此方法在会话结束后将失效。:对于当前会话,可以直接在终端中使用。命令设置环境变量,如上面所示。

2024-02-18 23:26:21 378

原创 Python常见的字符串格式化

使用f-string进行格式化(Python 3.6及以上版本支持):在字符串前加上。以上是一些常见的字符串格式化方式,具体使用哪种方式取决于个人偏好和需求。方法指定格式:可以指定格式化输出的样式,如小数点后保留几位等。方法进行格式化:将格式化参数作为字典传递。进行格式化:类似于C语言中的。方法进行格式化:使用大括号。包围变量名或表达式。

2024-02-18 00:11:28 187

原创 在Linux上使用systemctl实现开机自启动Python程序

是一个管理系统服务的命令行工具,用于控制systemd系统和服务管理器。它可以启动、停止、重启、重新加载和查询系统服务的状态。现在,您的Python程序应该在系统启动时自动运行,并且可以通过systemctl进行管理。这里假设要运行的python程序为XXX.py,路径为/root/XXX.py。如果您的Python文件需要特定的Python虚拟环境,请将。保存并关闭文件(不知道怎么保存关闭的可以去学一下。在打开的文件中输入以下内容,注意替换。替换为您虚拟环境的路径。

2024-02-17 23:52:23 788

原创 PyQt5中exec()与exec_()的区别

方法接受一个字符串作为参数,该字符串包含要执行的Python代码。它类似于Python的。是两个不同的方法,用于执行动态创建的Python代码。是Python的关键字,但不能直接用作方法名,因此在PyQt5中,使用。方法,这将启动PyQt5的事件循环,使应用程序保持活动状态。语句,但避免了与Python关键字的冲突。以下是一个示例,说明如何在PyQt5中使用。

2024-02-16 17:14:22 292

原创 2022广航蓝桥杯选拔赛压轴题:取数博弈游戏

对于这种「判断先手后手的必胜必败」的题目,博弈论方向是一个优先考虑的方向。博弈论的重要思想就是决策者都要做出全局最优的决策而非局部最优,就好比专业的棋手走一步看五步,而博弈论则要求棋手走一步看无限步。

2022-12-22 12:20:32 716 1

原创 不同的路径

解题思路这个题是比较简单的,举个例子就能明白,以样例输入3 7为例。建立一个3*7的二维数组,初始时把首行和首列均赋为1,如下表所示。111111110000001000000之后把剩余的每行元素按从左到右的顺序遍历赋值,使其等于其左边元素和上边元素之和,表示从起点到当前位置的路径数,因为要到达该位置只能从上边或左边到来,赋值后如下表所示。1111111123456713...

2022-03-05 16:04:10 215

原创 到达终点数字

题目描述解题思路target的范围有正有负,而起点为0,所以根据对称性实际上target=i与target=-i的答案是相等的,所以我们实际上只需要把target为负数的情况取反然后只需要讨论target为正数的情况即可。如上图所示,数字表示坐标,之后的第i行的勾表示第i次移动能到达的位置,由此可以知道,第i次移动能到达的最远位置坐标为(1+2+3+……+i),那么我们就可以直接从第一个移动到最远位置坐标大于target的那一次移动开始找,这样可以提高一些效率,记该次移动为第k次移..

2022-03-05 16:03:06 152

原创 飞机座位分配概率

题目描述[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KDJqhYwA-1646467325318)(https://cdn.jsdelivr.net/gh/tnnnnt/picgo/img/20220305144153.png)]解题思路若n为1,则第1个人一定只会坐在自己的位置上,故答案为1。若n为2,则第1个人坐在自己位置上和另一个位置上的概率各为0.5,故第2个人坐在自己的座位上的概率为0.5。若n为3,则第1个人坐在自己位置上、2号位置上和..

2022-03-05 16:02:44 797

原创 有一个人前来买瓜

题目描述解题思路部分同学反映题目描述不清晰,但这也恰恰是其难点之一,考验的是我们对题目的信息提取能力。信息1:世界上只有面值为3的幂的纸币,也就是说纸币只有1元的、3元的、9元的、27元的……。信息2:华强没办法正好给出N元钱。对于N,我们分2种情况讨论:第一种:N为3的幂,这种情况很简单,由信息2可知,华强不可能使用面值小于等于N元的纸币,所以只能使用面值大于N元的纸币,故郝哥最多可以得到1张纸币。第二种:N不为3的幂,这种情况下,华强不可能使用面值为1元的纸币,而郝哥如果..

2022-03-05 16:01:55 622

原创 C++-核心编程

C++核心编程本阶段主要针对C++面向对象编程技术做详细讲解,探讨C++中的核心和精髓。1 内存分区模型C++程序在执行时,将内存大方向划分为4个区域代码区:存放函数体的二进制代码,由操作系统进行管理的全局区:存放全局变量和静态变量以及常量栈区:由编译器自动分配释放, 存放函数的参数值,局部变量等堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收内存四区意义:不同区域存放的数据,赋予不同的生命周期, 给我们更大的灵活编程1.1 程序运行前​ 在程序编译后,生成了e.

2022-02-18 08:08:08 251

原创 七进制数-力扣

题目描述解题思路这个题很简单,没什么好讲的,直接看代码就能明白。代码class Solution {public: string convertToBase7(int num) { long long b=1,sum=0; do{ sum+=num%7*b; b*=10; num/=7; }while(num); return to_st..

2022-02-17 12:54:10 198

原创 取数游戏II-洛谷

题目描述解题思路问题简化由题目知,这个环里至少有一条边为0,而为0的边是无法经过的,所以起点两边的两个第一个为0的边之间的边是不可能到达的,因此可以把问题简化为只有1个边为0的环,即把那些不可能到达的边删除并把两个为0的边仅保留1个,如下图之后再更新一下n,如上图即n由7更新为5。存在必胜策略反推当轮到对手时硬币两边的边上都是0,那我们就赢了。则如果轮到我们的时候硬币与长度为0的边中间恰好隔着1条非0边,就有必胜策略。(结论1)当硬币的一条临边为0时,则在往另..

2022-02-15 14:35:59 2739

原创 c++基础入门

C++基础入门1 C++初识1.1 第一个C++程序编写一个C++程序总共分为4个步骤创建项目创建文件编写代码运行程序1.1.1 创建项目​ Visual Studio是我们用来编写C++程序的主要工具,我们先将它打开1.1.2 创建文件右键源文件,选择添加->新建项给C++文件起个名称,然后点击添加即可。1.1.3 编写代码#include<iostream>using namespace std;int main() { cout &

2022-02-14 10:56:40 6155

原创 Moo-洛谷

题目描述解题思路由题可知,第 k(k>1) 个字符串的组成为 第(k - 1)个字符串 + ‘m’ + (k+2)个 ‘o’ + 第(k - 1)个字符串,不难想到可以用递归简化问题,可以由 n 的值找到目标字符处在前一字符串中或处在当前字符串中间部分(即"mooooooooo…那里"),由此有了两个分支,递归终止条件为 目标字符在当前字符串中间部分 或 目标字符在1-3中 。要想确定目标字符在当前字符串的位置,就需要知道S(k)的长度,由题意知 S(k)的长度 = 2 * S..

2022-02-13 21:31:53 473

原创 最大矩形面积

题目描述解题思路运用单调递增栈即可求解。代码#include <iostream>#include <stack>using namespace std;#define MAX 100000long long arr[MAX + 5], l[MAX + 5], r[MAX + 5];int main(){ int n; stack<int> s; long long ans = 0; cin >..

2022-02-12 15:23:42 396

原创 最大子序和

题目描述解题思路遍历这 n 个数,求得数组 s , s[i] 代表前 i 项元素和,再有一个递增队列 q 用来维护 s[i-m+1] 到 s[i] 之间的最小值的对应下标,则当前最大子序和为原先最大子序 和 与 s[i] 减去 s[i-m+1] 到 s[i] 之间的最小值的结果 的较大者,遍历完成则答案也随之而来了代码#include<iostream>#define MAX 300000using namespace std;long lon..

2022-02-11 22:14:19 403

原创 有效的括号-力扣

题目描述解题思路遍历字符串的每个元素,按如下规则存储到字符数组中:左括号 ‘(’ 、 ‘{’ 、 ‘[’ 直接存储右括号 ‘)’ 、 ‘}’ 、 ‘]’ 检查其前者是否为对应左括号,若不是,则直接返回 false ,若是,则将前者从数组中移除遍历完每个元素后,判断数组中是否还有元素,若有则返回 false ,没有则返回 true代码class Solution {public: bool isValid(string s) { char c[..

2022-02-11 15:48:10 247

原创 删除链表中的节点-力扣

题目描述解题思路按照常规的思路,就是先找到要删除结点的上一结点,然后把这个结点的指针域改为要删除的结点的下一结点的地址即可。然鹅这个题并不能直接定位到要删除结点的上一结点,所以只能换个思路。先把要删除结点的数据域赋值为下一结点的数据域,然后可以发现这两个结点无论删除哪个都能达到题目要求的效果,因此我们只要删除后者即可。代码/** * Definition for singly-linked list. * struct ListNode { * int va..

2022-02-10 19:58:14 302

原创 回文链表-力扣

题目描述解题思路我的思路很简单,直接遍历链表,把数据存储到数组中,然后再从数组两端往中间逐个对比。代码/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullpt..

2022-02-10 10:39:01 254

原创 反转链表 力扣

题目描述解题思路首先判断头结点,如果是空,则直接返回 NULL ,不为空则进行如下操作:定义三指针 a, b, c, a 暂时不指向, b 指向 head 结点, c 指向 head 结点的下一结点,令 b 的指针域为空进行如下循环:判断 c ,若为空,则返回 b ,不为空则继续下面的循环操作令 a 为 c 的下一结点,令 c 的下一结点为 b判断 a ,若为空,则返回 c ,不为空则继续下面的循环操作令 b 为 a 的下一结点,令 a 的下一结点为 c判断 b ,若..

2022-02-09 22:48:44 240

原创 移除链表元素

题目描述解题思路定义一个指向头结点的 p 结点和初始为NULL的 newhead 结点, newhead 结点准备用于指向第一个数据域不为 val 的结点,之后用 p 遍历链表进行操作,最后也是直接返回 newhead 即可。代码/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0..

2022-02-09 21:09:03 278

原创 相交链表 力扣

题目描述解题思路定义双指针 pa 和 pb ,分别指向 headA 和 headB ,然后两个指针同时遍历链表,当 pa 为空时,则令 pa 指向 headB , pb 同理,这样两个链表如果有相交,则两个指针一定会有相等的时候,当碰到同一结点则返回该结点,当 pb 空了两次,则证明两个链表没有相交结点,返回NULL。代码/** * Definition for singly-linked list. * struct ListNode { * int val;..

2022-02-09 13:18:11 313

原创 环形链表 力扣

题目描述解题思路直接暴力,题目说了范围不超过10000,没超过10000能发现空节点就是没有环, 超过了就是有环代码/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public:..

2022-02-08 18:19:29 193

原创 删除排序链表中的重复元素

题目描述解题思路一如果头结点为NULL,则直接返回head,不为NULL则进行如下操作:定义一个指针 h 指向 head判断 h 的指针域即其指向的下一结点是否为空,若为空则返回 head ,不为空则继续执行下面的操作判断 h 的数据域与其下一结点的数据域是否相等,若相等执行4,不相等执行5将 h 的下一结点的指针域赋给 h 的指针域,即改变 h 的下一结点为原先下一结点的下一结点,接着执行2令 h 的下一结点为 h ,执行2代码一/..

2022-02-08 12:50:11 643

原创 两两交换链表中的节点

解题思路此题用递归,首先判断当前头结点或头结点的下一结点是否为空,若其中一个为空,则返回当前头结点,若两个都不为空则进行下面的操作,定义newhead结点为当前头结点的下一节点,然后让newhead指向head,即使newhead成为新的头结点,而head要指向head->next->next,则递归调用当前函数把head->next->next作为head传入,之后直接让head指向其返回值即可,最后返回新的头结点newhead。代码/** * Defini...

2022-02-07 22:54:37 255

原创 删除链表的倒数第-N-个结点

解题思路首先需要一个虚拟头结点指向头结点,然后有两个指针,分别是快指针和慢指针,初始时快指针和慢指针均指向头节点。我们首先使用快指针对链表进行遍历,遍历的次数为 n 。此时,快指针和慢指针之间间隔了 n-1 个节点,即快指针比慢指针超前了 n 个节点。在这之后,我们同时使用快指针和慢指针对链表进行遍历。当快指针遍历到链表的末尾(即快指针为空指针)时,慢指针恰好指向倒数第 n 个节点。之后就可以通过改变慢指针指向结点的指针域为该结点原指向的结点的指针域即可完成删除操作。最后返回的是虚拟头结点的指...

2022-02-07 12:05:00 163

原创 公交车路线

解题思路(找规律)由题意可以做出如下图矩阵。换车数n\车站FGHABCDE10010100020102010031030301040406040254010010040601402001408714034034014080480680480289480116011604...

2022-02-06 21:09:02 333

原创 N皇后-II

解题思路利用回溯算法求解,按行遍历每个列位置,当当前行位置遍历完即回溯上一行即可算出最终答案。代码class Solution {public: int a[10]; int totalNQueens(int n) { return way(1,n); } int way(int h,int n){//h为当前行 int sum=0,j; for(int i=1;i<=n;i++){//列位置 ...

2022-02-05 13:18:58 544

广州交通大学2021蓝桥杯选拔赛题目.zip

据说是蓝桥杯的难度

2021-05-09

空空如也

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

TA关注的人

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