自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 轻松学会 GDB:调试 C/C++ 程序的必备技能

GDB(GNU Debugger)是用于调试 C、C++ 等语言的强大工具。它允许开发者执行以下操作:启动程序并按照预期条件暂停(如断点处)。检查程序中的变量和内存状态。单步执行代码,观察每一步的变化。修改运行中的变量值以测试不同的假设。调试程序崩溃、段错误等问题。GDB 是一个功能强大且灵活的调试工具,即使在现代 IDE 广泛集成调试器的情况下,它仍然具备不可替代的价值。通过这篇博客,我们了解了 GDB 的基础用法、优缺点以及如何在 Windows 系统下安装和验证。

2024-09-19 23:56:35 703

原创 CMake使用, 简化项目构建流程

CMake 是一个强大的构建系统工具,能够简化项目的构建过程并支持多平台构建。通过编写 CMakeLists.txt 文件,你可以定义项目的编译规则,生成适用于不同平台的构建文件。

2024-09-19 09:35:25 687

原创 详解Makefile, 使用make命令构建C/C++项目

在编写 Makefile 之前,首先需要配置好编译环境。本文示例将在 macOS 和 Linux 环境下使用 g++ 作为编译器,make 作为编译工具。如果你使用的是 Windows,可以通过安装 MinGW 或 WSL 来模拟 Linux 环境。操作系统macOS/Linux:这些系统默认会自带终端,可以直接运行 g++ 和 make。Windows:需要安装 MinGW 或使用 Windows Subsystem for Linux (WSL) 进行开发。安装 g++

2024-09-15 23:43:27 1263

原创 单链表的逆置(反转)

定义 n3 是为了迭代时 n2 能找到下一个的位置如下图所示。如下图中将 1 为头节点的链表变为 6 为头节点的链表。当 n2 为空时算法结束可返回 n1 为新链表的头。取下原链表的每个节点都进行头插到新链表。将一个单链表的头与尾交换方向。但是有两处重要的出错点。

2023-09-18 12:15:44 604

原创 二分查找-

二分法是非常重要的基础算法,其实主要就是对区间的定义要理解清楚,在循环中要始终坚持根据查找区间的定义来做边界处理。区间的定义就是不变量,那么在循环中坚持根据查找区间的定义来做边界处理,就是循环不变量规则。

2023-09-17 10:36:04 74 1

原创 常用排序算法

通过不断从未排序的元素中,「比较」 和 「交换」,从而 「选择」 出一个最小的, 直到最后变成一个「升序」 序列,则算法结束。通过不断将当前元素 「插入」 到 「升序」(降序) 序列中,直到所有元素都执行过 「插入」 操作,则算法结束。通过不断比较相邻的元素,如果「左边的元素」 大于 「右边的元素」,则进行「交换」,直到所有相邻元素都保持升序,则算法结束。

2023-09-03 09:59:27 89

原创 复制带随机指针的链表

给一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。通过遍历链表,复制每一个节点并插入当前结点与下一节点之间。将复制节点解下来,生成一个新链表,并恢复原链表链接关系,根据原节点的random,处理复制节点的random。下面是一种时间复杂度较小的解法,仅为O(N)返回这个链表的深拷贝。

2023-08-09 16:24:07 74

原创 回文链表判断

通过一个寻找链表中点的函数,如果为偶数个结点,则返回中间两个的前一个结点,如果为奇数个结点,则返回中间节点,再通过一个反转链表的函数,将中间节点后面的链表翻转,建立两个指针,一个给链表的头,一个给中间结点的下一个,同时从两个指针遍历,判断结点是否相同。

2023-08-07 15:25:11 42

原创 单向环形链表

通过快慢指针的方式解决问题(fast and slow)slow 走一步,fast 走两步,判断是否相遇

2023-08-02 17:22:56 143 1

原创 求数组中只出现一次的两个数字(题解)

简单分析:因为在遍历异或的计算过程中成对出现的数字的所有位会两两抵消为 0,最终得到的结果就是那个出现了一次的数字。实现:定义一个数res=0,遍历数组让每一个数都与res进行异或操作最后res的值就是出现一次的数。如果数组中除了一个数字以外,其他数字都出现了两次,那么如何找到出现一次的数字?输入:nums = [1,2,10,4,1,4,3,3]输入:nums = [4,1,4,6]输出:[2,10] 或 [10,2]输出:[1,6] 或 [6,1]按位异或,相同为0,不同为1。

2023-07-21 16:47:14 109 1

原创 求素数和题解

质数又称素数。一个大于1的自然数,除了1和它本身外,不能被其他自然数整除的数叫做质数。从1到其自身,存在任意两个数字想成等于其自身的数字就不是质数,

2023-07-18 21:43:58 250

原创 计算斐波那契递归时间复杂度

递归算法:递归次数*每次递归调用的次数。斐波那契数列的时间复杂度为:O (2^N)调用次数相当于等比数列求和;

2023-07-18 10:38:58 1016

原创 二叉树的前中后序遍历(C++)

二叉树及表达式二叉树的遍历方式

2023-07-17 20:40:28 310 1

空空如也

空空如也

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

TA关注的人

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