//returnasea
//returnasea
全部文章
分类
题解(106)
归档
标签
去牛客网
登录
/
注册
//returnasea的博客
全部文章
(共106篇)
题解 | #反转字符串#
双指针,交换。 class Solution { public: /** * 反转字符串 * @param str string字符串 * @return string字符串 */ string solve(string str) { ...
C++
2021-10-01
0
441
题解 | #在二叉树中找到两个节点的最近公共祖先#
思路:递归。如果root为空,则公共祖先为空;如果root->val为o1或者o2,则公共祖先为root;分别递归左子树和右子树,返回公共祖先。 /** * struct TreeNode { * int val; * struct TreeNode *left; * struct T...
C++
2021-10-01
0
401
题解 | #两个链表生成相加链表#
思路与两个字符串大数相加是一样的,只不过链表无法直接从后向前遍历,那么先将链表反转,然后从前向后遍历相加,设置进位,遍历完成后再将结果链表反转。注意使用dummy_node。 /** * Definition for singly-linked list. * struct ListNode {...
C++
2021-10-01
0
484
题解 | #两个链表的第一个公共结点#
p1和p2分别遍历链表,一次向前走一步,当走到头并且两者不相等时,重新给其赋值头结点,形成环状的遍历,直到两者相遇。 /* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(N...
C++
2021-09-30
2
609
题解 | #最长公共子串#
dp[i][j]表示str1[0,i-1]和str2[0,j-1]的最长公共子串的长度,本题的关键是在dp遍历的过程中记录最长公共子串的结尾下标,根据结尾下标以及长度就可以求出子串。 class Solution { public: /** * longest common sub...
C++
2021-09-30
6
567
题解 | #按之字形顺序打印二叉树#
思路:层次遍历,并且在层次遍历过程中添加一个标志,调整每一层元素的顺序。 /* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : ...
C++
2021-09-30
1
363
题解 | #大数加法#
同时从后向前遍历字符串s和字符串t,并且设置一个进位carry。 class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * 计算两个数之和 * @param s string字符串...
C++
2021-09-30
0
422
题解 | #删除链表的倒数第n个节点#
思路:快慢指针,快指针先走n步,然后慢指针和快指针同时走直到快指针走到尾端,此时慢指针指向要删除的结点的前导结点。注意在操作链表的过程中使用虚拟头结点dummy_head。 /** * struct ListNode { * int val; * struct ListNode *next; ...
C++
2021-09-30
0
430
题解 | #链表中环的入口结点#
环的入口结点为:从快慢指针第一次在环中相遇的结点、链表头结点分别出发,每次走一步,直到相遇时的结点。注意while的判断条件fast->next、fast->next->next。 /* struct ListNode { int val; struct ListN...
C++
2021-09-30
0
356
题解 | #合并两个有序的数组#
因为数组A的大小可以容纳A+B,所以直接在数组A上原地操作。从后向前,分别比较数组A和数组B的对应元素,并从后向前填入到数组A,另外再处理两个数组中的剩余元素。 class Solution { public: void merge(int A[], int m, int B[], int ...
C++
2021-09-30
0
375
首页
上一页
2
3
4
5
6
7
8
9
10
11
下一页
末页