自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LeetCode 209 题:长度最小的子数组

LeetCode 第209题要求给定一个正整数数组nums和一个正整数target,找出具有最小长度的连续子数组,使得子数组的和大于或等于target。如果不存在这样的子数组,返回0。

2025-01-13 23:03:09 542

原创 LeetCode 977 题:有序数组的平方

LeetCode 第977题要求给定一个按非降序排列的整数数组nums,返回每个数字的平方并按升序排列。

2025-01-13 22:46:47 663

原创 LeetCode 844 题:比较含退格的字符串

本题要求给定两个字符串s和t,当对它们进行退格处理后(表示退格操作),判断两者是否相等。

2025-01-11 16:12:24 699

原创 LeetCode 283题:移动零

LeetCode 第283题要求将数组中的所有零移动到数组的末尾,同时保持非零元素的相对顺序。

2025-01-11 15:52:16 1039

原创 LeetCode 第367题:有效的完全平方数

通过二分查找法,我们能够高效地判断一个数是否是完全平方数。该方法时间复杂度为 O(log n),适用于较大的整数输入。希望本篇文章能够帮助你掌握这道题目的解决方案!如果你有任何问题或改进意见,欢迎在评论区留言。

2025-01-10 00:08:02 894

原创 LeetCode 第34题:二分查找+扩展搜索

LeetCode 第34题要求在一个排序的数组中找到给定目标值的第一个和最后一个位置。如果目标值不存在,则返回 [-1, -1]。在本篇文章中,我将为大家提供详细的 C 语言解法,并逐行解释代码。

2025-01-09 00:15:13 455

原创 力扣第141题:环形链表 C语言解法

通过快慢指针的经典方法,我们能够在OnO(n)On时间内判断一个链表是否包含环,并且只需常数空间。相比于哈希表等方法,这种方法在空间复杂度上有明显优势。

2025-01-07 00:28:46 1037

原创 力扣第137题:只出现一次的数字 II C语言解法

这道题通过使用位运算的技巧(特别是与、异或和位清除操作),我们能够高效地找出只出现一次的数字。相比于哈希表等常规方法,位运算不仅能实现线性时间复杂度,而且能够节省空间,解决了题目中关于额外空间的限制。

2025-01-07 00:04:13 1073

原创 力扣第136题:只出现一次的数字 巧用异或

通过利用异或运算的特性,这道题可以在OnO(n)On时间复杂度内解决,而且只需要O1O(1)O1的空间复杂度。异或操作的特性使得我们能够快速找到只出现一次的元素,非常高效。

2025-01-06 23:46:15 716

原创 力扣第130题:被围绕的区域

本题通过深度优先搜索(DFS)对矩阵中与边界相连的'O'进行标记,确保它们不会被改变。通过这种方式,我们有效地解决了被围绕的区域修改问题。

2025-01-02 09:40:22 945

原创 力扣第129题:求根到叶子节点数字之和 - C语言解法

本题通过深度优先搜索(DFS)遍历二叉树的每一条路径,计算路径数字之和。该解法的时间复杂度为OnO(n)On,空间复杂度为OhO(h)Oh,其中nnn为节点数,hhh为树的高度。

2025-01-01 23:19:39 862

原创 【无标题】

给定一个未排序的整数数组nums,找出数字连续的最长序列(序列中的数字可以不按顺序出现)的长度。On。

2024-12-31 15:51:45 1000

原创 力扣第123题:买卖股票的最佳时机 III

我们定义dp[k][i]表示在第i天,最多进行k次交易(买入和卖出一组算作一次交易)所获得的最大利润。k = 0:表示没有交易,利润为 0。k = 1:表示进行一次交易,最大利润。k = 2:表示进行两次交易,最大利润。

2024-12-30 09:50:12 1011

原创 力扣第122题:买卖股票的最佳时机 II

本题的解法采用了贪心算法,通过遍历股价数组,找出所有能够获得利润的买卖机会。每当股价上涨时,我们就进行卖出,并累积利润。最终,我们得到了最大利润。时间复杂度为OnO(n)On,空间复杂度为O1O(1)O1,是一个高效的解法。

2024-12-29 19:45:10 913

原创 力扣第120题:三角形最小路径和 - C语言解法

给定一个triangle,求从顶部到底部的最小路径和。每一步可以移动到当前行的相邻数字(即下一行的相邻数字),并且只能移动到下方的两个数字之一。

2024-12-27 10:12:43 657

原创 力扣第118题:杨辉三角 - C语言解法

给定一个非负整数numRows,生成杨辉三角的前numRows行。在杨辉三角中,每个数字是由上方两个数字相加得到的,第n行的第k个数字是由第n-1行的第k-1个和第k个数字相加而来,边界上的数字始终为1。

2024-12-26 16:36:30 1005

原创 力扣第116题:填充每个节点的下一个右侧节点指针 - C语言解法

给定一个完美二叉树,其每个节点都包含一个额外的next指针,该指针指向该节点的右侧邻居。如果不存在右侧邻居,则该指针应该为NULL。填充所有节点的next指针,并返回修改后的树。

2024-12-26 15:52:14 892

原创 力扣第115题:不同的子序列 — C语言解法

我们在代码中定义了常量,用于防止结果的溢出。每次更新dp数组时,我们都对当前值取模,确保它不会超出long long类型的最大值。1000000007# define MOD 1000000007 // 定义常用的模数。

2024-12-24 11:04:58 856

原创 力扣第114题:二叉树展开为链表

给定一个二叉树,原地将其展开为一个单链表。

2024-12-23 11:04:06 781

原创 力扣第112题:路径总和

给定一个二叉树和一个目标和,判断该树中是否存在从根节点到叶子节点的路径,使得路径上的节点值之和等于给定的目标和。是指没有子节点的节点。

2024-12-21 15:52:02 655

原创 力扣第111题:二叉树的最小深度

给定一个二叉树,找出其最小深度。是从根节点到最近的叶子节点的路径上的节点个数。是指没有子节点的节点。

2024-12-21 15:45:23 996

原创 力扣第110题:平衡二叉树

给定一个二叉树,判断它是否是高度平衡的二叉树。:一个二叉树,若每个节点的左右子树的高度差的绝对值不超过1,则该树是高度平衡的。

2024-12-20 09:57:57 502

原创 力扣第109题:将排序链表转换为二叉搜索树

为了快速找到链表的中间节点,我们可以使用快慢指针(快指针一次走两步,慢指针一次走一步),直到快指针到达链表末尾时,慢指针恰好位于链表的中间。:对于一棵二叉搜索树,中序遍历会生成一个升序排列的节点序列。因此,排序链表转换为二叉搜索树的关键是将链表的中间节点作为树的根节点。给定一个单链表,其中的元素已经按升序排列,要求将其转换为一个高度平衡的二叉搜索树。:我们可以利用递归的方式,选取链表的中间节点作为根节点,递归地构建左子树和右子树。:一个二叉搜索树,其中每个节点的左右子树的高度差的绝对值不超过1。

2024-12-19 09:36:36 834

原创 力扣 105 题:从前序与中序遍历序列构造二叉树

/ 定义二叉树节点结构体int val;

2024-12-16 09:27:14 756

原创 力扣 103 题:二叉树的锯齿形层序遍历

本题核心是层序遍历和方向控制的结合。函数通过队列实现遍历,并动态调整输出方向。在实现中需要特别注意内存分配和释放,避免内存泄漏。

2024-12-14 23:52:09 293

原创 力扣第102题 - 二叉树的层序遍历

的结果(即逐层从左到右访问所有节点)。为了实现层序遍历,使用一个队列结构。给你一个二叉树,请你返回其按。

2024-12-13 09:49:20 386

原创 力扣第101题:对称二叉树(C语言解法)

给定一个二叉树,检查它是否是镜像对称的。

2024-12-12 10:35:27 309

原创 力扣第99题 - 恢复二叉搜索树

Morris遍历是一种在二叉树上实现中序遍历的算法,不需要递归或栈辅助,能够达到 (O(1)) 空间复杂度。我们需要通过中序遍历找到这两个错误的节点,并交换它们的值恢复树。,请你恢复该二叉搜索树,使其满足二叉搜索树的定义。:(O(n)),因为数组需要存储所有节点。:(O(n)),因为需要一次中序遍历。给你二叉搜索树的根节点。

2024-12-11 10:14:58 446

原创 力扣第97题 - 交错字符串

给定三个字符串 、 和 ,判断 是否可以由 和 按某种顺序交错组成。这是一个经典的 动态规划 问题。我们需要判断是否可以通过选择 或 的字符,交错拼接出 。定义状态:状态转移方程:边界条件:复杂度分析时间复杂度:空间复杂度:

2024-12-10 10:22:17 922

原创 力扣第96题 不同的二叉搜索树

设。

2024-12-09 09:54:30 702

原创 力扣第95题 不同的二叉搜索树 II

给你一个整数 ,要求生成所有由 到 为节点所组成的 不同的二叉搜索树,并返回这些树的根节点。参数含义: 当前生成树的节点值范围的起始值。: 当前生成树的节点值范围的结束值。: 用于返回生成的树的数量。返回值返回所有可能的 BST(以数组形式表示,数组中的每个元素是 BST 的根节点指针)。当 时,不存在可用节点,这表示一种有效的情况:返回空树。这种情况允许更高层的递归在左右子树组合时将 作为子树。枚举每个节点作为根节点:遍历 范围内的每个数字,将其作为当前树的

2024-12-08 18:40:03 1180

原创 二叉树的前序、中序和后序遍历

二叉树的遍历主要有和三种方式。这三种遍历方式的主要区别在于“访问根节点”的顺序。根节点 → 左子树 → 右子树先访问根节点,再递归访问左子树,最后递归访问右子树。

2024-12-07 15:04:16 652

原创 力扣94题:二叉树的中序遍历

方法时间复杂度空间复杂度特点递归OnO(n)OnOhO(h)Oh简单易实现,但依赖递归栈。迭代(栈)OnO(n)OnOhO(h)Oh显式使用栈,适合较大的二叉树。Morris 遍历OnO(n)OnO1O(1)O1无额外空间需求,但实现较复杂。不同方法适合不同场景,推荐优先使用递归和迭代方法,Morris 遍历适合对空间要求极高的情况。

2024-12-07 15:03:01 801

原创 strncpy(0函数详解

中的一个函数,用于从源字符串中复制指定数量的字符到目标字符串中。它是一个更加“安全”的字符串复制函数,相较于。这可能导致未定义行为,尤其是在后续操作中依赖字符串终止符时。填充,可能会引入额外的性能开销。,可以避免超出目标缓冲区的问题。不会自动在目标字符串中添加。缓冲区的大小必须至少为。在现代 C 代码中,

2024-12-07 14:47:00 412

原创 strdup()函数详解

中声明),用于复制一个字符串到新的内存空间。它分配足够的内存来保存输入字符串的副本,并返回该副本的指针。是 C 标准库中的一个函数(通常在。

2024-12-07 14:45:39 341

原创 力扣93题:复原 IP 地址

每次递归处理当前字符串片段,尝试将其分割为一个有效的 IP 地址部分。

2024-12-07 14:41:42 1250

原创 容积卡尔曼滤波(CKF)仿真抛物线运动

容积卡尔曼滤波(Cubature Kalman Filter, CKF)的MATLAB实现。CKF是一种用于非线性系统状态估计的算法,它通过在状态空间中采样点(容积点)来近似非线性函数的高斯分布。

2024-12-06 16:57:22 408

原创 力扣92题:反转链表 II

通过哨兵节点简化对头节点的处理逻辑,避免头节点变化时单独处理。

2024-12-06 09:38:31 942

原创 力扣第91题 解码方法

一条包含字母A-Z给定一个只包含数字的非空字符串,解码方法的总数是多少?

2024-12-05 10:25:54 705

原创 力扣第90题:带重复元素的子集

我们可以通过回溯来生成所有的子集。每次选择一个元素,将其加入到当前的子集中,并递归生成后续的子集。递归的过程中,当遇到重复的元素时,我们跳过它们,从而避免生成重复的子集。返回该数组所有可能的子集(幂集),并且子集中的元素需要去重。这道题的核心是生成所有子集,并且确保在存在重复元素的情况下,跳过重复的子集。每个子集打印时,按照子集中的元素顺序输出,子集之间用逗号分隔。这样一来,我们可以在生成子集时,跳过相同的元素,避免重复生成相同的子集。函数是主函数,它首先对输入数组进行排序,以确保可以跳过重复的元素。

2024-12-04 23:57:43 1033

空空如也

空空如也

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

TA关注的人

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