- 博客(44)
- 收藏
- 关注
原创 BM74 数字字符串转化成IP地址
现在有一个只包含数字的字符串,将该字符串转化成IP地址的形式,返回所有可能的情况。题目来自【牛客题霸】数字字符串转化成IP地址_牛客题霸_牛客网。
2023-10-10 17:31:23
217
原创 1143. 最长公共子序列(C++实现)
因此这里多用一个 vector<vector<int>> 来记录最长公共子序列的遍历路径,当遍历完成后、再根据这个路径来输出结果子序列。如果使用 vector<vector<string>> 作为dp数组的话,空间复杂度将会达到O(n三次方);// 此时 i 已被改变。题目改成求最长公共子序列的同时、要输出这个子序列;BM65 最长公共子序列(二)1143. 最长公共子序列。
2023-09-17 21:37:33
373
原创 剑指 Offer 49. 丑数(C++实现)
对每个丑数 分别乘2、乘3、乘5 即可得到后续丑数。其中只需要对计算出来的丑数结果进行去重即可。剑指 Offer 49. 丑数。
2023-09-01 19:59:34
208
原创 剑指 Offer 19. 正则表达式匹配(C++实现)
剑指 Offer 19. 正则表达式匹配。只需要对各种情况进行分类处理即可。动态规划:通过dp数组剪枝。
2023-08-27 18:34:13
113
原创 剑指 Offer 48. 最长不含重复字符的子字符串(C++实现)
剑指 Offer 48. 最长不含重复字符的子字符串。注意:缩小 不含重复字符子串 时的写法。
2023-08-21 10:04:26
128
原创 剑指 Offer 40. 最小的k个数(C++实现)
剑指 Offer 40. 最小的k个数。通过最小堆,直接筛选出最小的k个数。将最小的k个数 分到一边。
2023-08-18 20:19:17
481
原创 剑指 Offer 45. 把数组排成最小的数(C++实现)
排序完成后,结果数组即为所求字符串,将数组拼接成一个字符串即可。剑指 Offer 45. 把数组排成最小的数。,排序规则为 拼接后字符串较小者在前。
2023-08-18 12:17:57
137
原创 剑指 Offer 51. 数组中的逆序对(C++实现)
在进行归并排序的过程中,其实就是对逆序对进行整理的过程。时,可以计算出对应的逆序对数量,最后再对结果相加。剑指 Offer 51. 数组中的逆序对。
2023-08-13 15:04:53
97
原创 剑指 Offer 17. 打印从1到最大的n位数(C++实现)
剑指 Offer 17. 打印从1到最大的n位数。要解决大数问题,通过字符串来表示即可。考察整数的生成、大数问题。
2023-08-09 22:42:02
104
原创 剑指 Offer 38. 字符串的排列(C++实现)
难点在于 可能出现重复的元素、这样直接求排列也会出现重复的结果。剑指 Offer 38. 字符串的排列。
2023-07-31 15:30:34
79
原创 剑指 Offer 37. 序列化二叉树(C++实现)
也有差异,用一个什么 符号/类型/数据 去表示空指针,是否需要表示 等等;是否一定要用字符串表示呢、用别的数据类型 像数组 行不行呢。剑指 Offer 37. 序列化二叉树。序列化的方式有很多种,关键是在。这些都是值得思考的问题。
2023-07-31 15:00:17
69
原创 剑指 Offer 64. 求1+2+…+n(C++实现)
剑指 Offer 64. 求1+2+…借助类的特性 实现 条件判断、循环等需求。通常是用到 类的静态成员 的特性。
2023-07-29 16:42:40
65
原创 剑指 Offer 36. 二叉搜索树与双向链表(C++实现)
的性质,改变二叉树的指针指向 即可原地构建有序的双向链表。剑指 Offer 36. 二叉搜索树与双向链表。
2023-07-29 11:34:50
188
原创 剑指 Offer 12. 矩阵中的路径(C++实现)
比如:函数传参、for loop里的临时对象。该用引用的地方就用引用,这对效率的影响很大。剑指 Offer 12. 矩阵中的路径。
2023-07-27 13:49:23
84
原创 剑指 Offer 26. 树的子结构(C++实现)
当两棵树都足够大时、或需要比较的 B树 有多课时,这种方法效率会比较低。对A的每个子树 与 B树 进行比较,检查是否有相似的结构。这种方法的前提是,B树与A树子树应该具有。剑指 Offer 26. 树的子结构。
2023-07-25 11:28:10
73
原创 剑指 Offer 32 - III. 从上到下打印二叉树 III(C++实现)
剑指 Offer 32 - III. 从上到下打印二叉树 III。记录 遍历每一层节点时 的结果。变量标志 遍历该层时应该为。
2023-07-24 17:16:45
64
原创 剑指 Offer 50. 第一个只出现一次的字符(C++实现)
因为字符串只含有小写字母,可以通过一个大小为26的数组代替一般的哈希表,提高效率、空间利用率。剑指 Offer 50. 第一个只出现一次的字符。
2023-07-24 15:44:32
329
原创 剑指 Offer 59 - II. 队列的最大值(C++实现)
方法与以下文章中的类似,使用单调队列实现,不再赘述。剑指 Offer 59 - II. 队列的最大值。
2023-07-21 21:11:43
74
1
原创 剑指 Offer 59 - I. 滑动窗口的最大值(C++实现)
使其实现:向其 push() 时 自动把队尾小于插入值的元素 弹出,再 push。剑指 Offer 59 - I. 滑动窗口的最大值。于是,当我们将其用于 求滑动窗口最大值时,可以通过。实际存储的即为 一串单调递减的元素。
2023-07-21 20:36:51
77
1
原创 剑指 Offer 30. 包含min函数的栈(C++实现)
定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。优点:相比于用优先级队列的方法,减少了每次调整节点找最小值的时间、减少了树状结构的额外空间开销,性能更好。剑指 Offer 30. 包含min函数的栈。缺点:性能差,空间开销也大。
2023-07-20 10:58:40
76
原创 剑指 Offer 58 - I. 翻转单词顺序(C++实现)
输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. ",则输出"student. a am I"。链接:https://leetcode.cn/problems/fan-zhuan-dan-ci-shun-xu-lcof。此处用一般指针作为迭代器,传入的是地址,实际不会真的去取s[fast],因此当 fast == n 时不会导致溢出。来源:力扣(LeetCode)
2023-07-19 13:38:56
152
原创 剑指 Offer 35. 复杂链表的复制(C++实现)
请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。链接:https://leetcode.cn/problems/fu-za-lian-biao-de-fu-zhi-lcof。不占用额外辅助空间的方法,空间复杂度O(1),时间复杂度O(n)以空间换时间的方法,空间复杂度O(n),时间复杂度O(n)来源:力扣(LeetCode)
2023-07-17 14:56:34
147
1
原创 剑指 Offer 24. 反转链表(C++实现)
定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。剑指 Offer 24. 反转链表。通过 3 根指针 反转链表。
2023-07-16 19:01:17
134
1
原创 剑指 Offer 06. 从尾到头打印链表(C++实现)
剑指 Offer 06. 从尾到头打印链表。法1:(遍历一次链表)法2:(遍历两次链表)
2023-07-16 17:26:55
242
1
原创 剑指 Offer 67. 把字符串转换成整数(C++实现)
来源:力扣(LeetCode)链接:https://leetcode.cn/problems/ba-zi-fu-chuan-zhuan-huan-cheng-zheng-shu-lcof。
2023-07-15 20:11:06
185
1
原创 printf()和scanf()与 * 修饰符
目录1.printf()与*2.scanf()与*1.printf()与*如果想通过程序决定输出时的字段宽度,而不是一开始就写死输出宽度,可以使用 * 修饰,用相关参数代替。 // 1.printf 和 * int width = 6; // 字段宽度 int precision = 5; // 小数点位数 printf("%*d\n", width, 123); printf("%.*lf\n", precision, 123.456);2.s
2022-01-10 15:33:55
399
原创 C语言复习——一些不常用的函数及数据类型、题型总结
1.数学函数#include<math.h>sqrt(n); // 开平方根pow(a, n); // a的n次方fabs(n); // 求绝对值2.输入输出函数// 字符getchar(); // 返回输入的单个字符,可以为通过ASCII转换的整数、各种控制/转义字符putchar();// 字符串gets(); // 返回输入的字符串,可包括空格puts();3.字符串相关函数#include<string.h>...
2022-01-05 00:28:21
871
原创 如何将数组初始化为同一值?(对数组所有元素进行赋相同值)(C/C++实现)
1.直接用 { 0 } 初始化数组// 法一int arr[5] = { 0 };局限该方法仅可将数组元素初始化为0若初始化为其他数字,仅有首元素可被初始化为该数字,其余元素自动初始化为0// 错误!仅可对数组首元素初始化为666int arr[5] = { 666 };2.用for循环对数组元素进行一一赋值int arr[5];for (int i = 0; i < 5; i++){ arr[i] = 666;}局限使
2022-01-04 22:25:43
19642
1
原创 如何删除链表的倒数第N个结点?(双指针法/快慢指针)(C++实现)
题目条件已给出链表结点结构体的定义一个链表结点包含 一个数据域、一个指针域还有三种创建新结点的方法// 链表结点伪代码// Definition for singly - linked list.struct ListNode { int val; ListNode* next; ListNode() : val(0), next(nullptr) {} ListNode(int x) : val(x), next(nullptr) {} L.
2021-12-24 17:19:00
490
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人