不经历怎么能成长
不经历怎么能成长
全部文章
题解
归档
标签
去牛客网
登录
/
注册
不经历怎么能成长的博客
全部文章
/ 题解
(共128篇)
题解 | #二叉树的之字形层序遍历# (获取队列长度入队)
用队列实现二叉树层次遍历。 同时设置一个flag标记, 来判断二叉树该一层节点的值是否翻转。 用stl中reverse函数翻转vector数组 使用异或, 实现flag一次是0,一次是1,来回变化。```class Solution {public: vector<vector<int&...
2021-04-16
1
589
题解 | #删除链表的倒数第n个节点#(用两个指针&声明一个头指针)
/** 声明一个头指针便于统一操作 当链表中只有一个节点时,声明一个头指针可以统一操作。 */ class Solution { public: ListNode* removeNthFromEnd(ListNode* head, int n) { // writ...
2021-04-16
0
490
题解 | #括号序列#(用栈存储其匹配字符)
栈模拟,输入'[','{','('左括号符,在栈中存放其相反的右匹配符']'等 方便判断。 当输入是右括号符,该符号肯定与栈顶的符号匹配否则不构成括号序列。 class Solution { public: bool isValid(string s) { int len=...
2021-04-15
0
479
题解 | #链表中环的入口节点#(快慢指针且相遇到入口长度 +k圈=开始到入口长度 )
设置两个指针一个快指针每次走两步(fast->next->next),一个慢指针一次走一步(low->next)。 如果链表中没有环它们最后肯定不相遇,反之它们一定会在环中相遇。 如上图链表中有环,从x点出发,环的入口为点y,它们最后会在z点相遇。 设x到y长度为a,y到z的长度为...
2021-04-15
1
538
题解 | #合并两个有序的数组#(计算合并后长度,从后往前赋值,空间复杂度O(1))
1.声明一个额外空间。 空间复杂度O(n) class Solution { public: void merge(int A[], int m, int B[], int n) { vector<int> c(m+n); int i = 0, j...
2021-04-12
1
528
题解 | #找到字符串的最长无重复字符子串#(双指针&map)
class Solution { public: /* i - j 之间为连续不重复数 vector<int> v 标记i - j之间元素是否存在。 初始 i=j=0 都放在数组首部 从i 出 j进 j++ 当v 中不存在arr[j] i-- 当arr[j]存在 需要从i 出数 i++...
2021-04-10
0
565
题解 | #链表中的节点每k个一组翻转#(头插法&边插入边走)
/** 想想大牛 怎么做 反转链表, 头插法 需要一个头指针 建立一个头指针 k-1次头插,更新 头指针 */ class Solution { public: ListNode* reverseKGroup(ListNode* head, int k) { if(he...
2021-04-08
6
967
子数组的最大累加和(动态规划)
/* dp[i]:以i为结尾的数组最大和 dp[i]:初始化为a[i]. dp[i] = max(dp[i], dp[i-1] + a[i]); 结果为遍历所有dp,寻找以i为结尾的最大值 */ class Solution { public: int maxsumofSubarray(v...
2021-04-07
0
612
合并有序链表(声明一个头指针)
/** 添加一个赋值头结点p。 */ class Solution { public: ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { ListNode *p = new ListNode(0), *p1 = l...
2021-04-07
0
429
表示数值的字符串(+-E.的位置条件)
class Solution { public: bool isNumeric(string str) { // write code here //数字 continue。 //加减要在 1、要在开头或者E的后面 2、且后面不能是E ...
2021-04-06
0
561
首页
上一页
1
2
3
4
5
6
7
8
9
10
下一页
末页