练习时长的代码练习生
练习时长的代码练习生
全部文章
分类
归档
标签
去牛客网
登录
/
注册
练习时长的代码练习生的博客
全部文章
(共50篇)
题解 | #栈的压入、弹出序列#
基础进出栈问题 思路: 建立一个辅助栈,开始时,指针分别指向入栈数组pushV和出栈数组popV第一个元素,再让与当前出栈数组元素对应的入栈数组元素前的所有数入栈。此时栈顶元素与出栈数组元素相等,让栈顶元素出栈、出栈数组指针后移,继续判断直到不等。重复上述过程,直到入栈数组和出栈数组访问...
数组
栈
C
C++
2022-07-17
6
732
题解 | #包含min函数的栈#
时间复杂度O(n),空间复杂度 O(1) //C static int s[300],n=-1;//必要空间 void push(int value ) { s[++n]=v...
C
C++
数组
栈
2022-07-17
0
223
题解 | #二叉树的镜像#
自顶向下交换左右结点 class Solution { public: void reverse(TreeNode* p){  ...
二叉树
C
C++
2022-07-15
0
286
题解 | #树的子结构#
一.递归 在A树中先序访问并比较结点,遇到与B树头结点值相等时,以A树当前结点为头结点再同时对A子树与B树先序访问并比较。 //先序遍历(递归)判断 #include <stdbool.h> bool match(struct TreeNode*&...
C
二叉树
队列
递归
2022-07-14
0
302
题解 | #从上往下打印二叉树#
int* PrintFromTopToBottom(struct TreeNode* root, int* returnSize ) { // write cod...
C
二叉树
2022-07-13
0
264
题解 | #合并两个排序的链表#
因为合并后的链表的头结点值为原头结点值较小的链表的首值,因此在头结点值较小的链表上合并,取出另一个链表上结点的值插入到该链表上合适的位置,最后返回头结点值小的链表。 /* struct ListNode { int val; struct ListNo...
链表
C
C++
2022-07-12
0
309
题解 | #反转链表#
/* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };*/...
C
C++
链表
2022-07-12
0
253
题解 | #链表中环的入口结点#
没看题解前没想到用数学式推导结点关系(当以2倍速差的指针遍历环时,相遇点到环头的距离等于头结点到环头距离)。 我用的一般思维:若有环,则找出环内结点数,重置快慢指针指向头结点,然后使它们之间结点数为环结点数+1,再以相同速度前进,当它们再次相遇时,相遇点就为环头结点。虽然时间复杂度还是O(n)...
双指针
链表
C
C++
2022-07-11
0
245
题解 | #链表中倒数最后k个结点#
ListNode* FindKthToTail(ListNode* pHead, int k) { // write code here  ...
C++
C
链表
2022-07-11
0
304
题解 | #正则表达式匹配#
C排名第一,该题是《HJ71 字符串通配符》的简化版本。不用动态规划和递归,用双指针回溯法,只遍历一次,不占用额外空间。由于模式串中的字符 '*' 表示它前面的字符可以出现任意次,为了方便处理 '*' 和它前面的字符,在这里逆序匹配字符。 思路: 指针 i,j 分别表示 str...
字符串
双指针
回溯
C
C++
2022-07-10
0
264
首页
上一页
1
2
3
4
5
下一页
末页