LeetCode Weekly Contest 24
1, 543. Diameter of Binary Tree
维护左右子树的高度,同时更新结果,返回以该节点结束的最大长度。递归调用。
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
int res;
int work(TreeNode* root) {
if(!root) return ;
int a = work(root->left), b = work(root->right);
res = max(res, a + b + );
return max(a, b) + ;
}
int diameterOfBinaryTree(TreeNode* root) {
res = ;
work(root);
if(res >= ) res -= ;
return res;
}
};
2. 538. Convert BST to Greater Tree
利用bst的有序性,一次遍历,同时维护后缀和,更新节点。递归调用。
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
int s;
void work(TreeNode* root) {
if(!root) return;
if(!root->left && !root->right) {
root->val += s;
s = root->val;
return;
}
if(root->right) work(root->right);
root->val += s;
s = root->val;
work(root->left);
}
TreeNode* convertBST(TreeNode* root) {
s = ;
work(root);
return root;
}
};
3. 542. 01 Matrix
简单的bfs,初始为0的节点加入队列,然后更新相邻节点,直到最后的结果为空。
int dx[] = {, -, , };
int dy[] = {, , , -};
class Solution {
public:
int n, m;
bool check(int x, int y) {
if(x >= && x < n && y >= && y < m) return ;
return ;
}
vector<vector<int>> updateMatrix(vector<vector<int>>& matrix) {
n = matrix.size();
m = matrix[].size();
typedef pair<int, int> pii;
vector<vector<int>> res(n, vector<int>(m, INT_MAX));
queue<pii> q;
for (int i = ; i < n; i++) {
for (int j = ; j < m; j++) {
if(matrix[i][j] == ) {
res[i][j] = ;
q.push({i, j});
}
}
}
int x, y, v;
while(!q.empty()) {
x = q.front().first, y = q.front().second;
q.pop();
v = res[x][y];
for (int i = ; i < ; i++) {
int cx = x + dx[i], cy = y + dy[i];
if(check(cx, cy)) {
if(res[cx][cy] > v + ) {
res[cx][cy] = v + ;
q.push({cx, cy});
}
}
}
}
return res;
}
};
4. 544. Output Contest Matches
一个队的rank在整个过程是不变的,都是第一个元素决定的,然后每次生成新节点,维护下顺序,第一个和最后一个合并,直到只剩一个为止。
class Solution {
public:
string findContestMatch(int n) {
vector<string> a;
for (int i = ; i < n / ; i++) {
stringstream ss;
ss << "(" << i + << "," << (n - i) << ")";
a.push_back(ss.str());
}
vector<string> b;
int sz = a.size();
while(a.size() > ) {
b.clear();
sz = a.size();
for (int i = ; i < sz / ; i++) {
string t = "(" + a[i] + "," + a[sz - i - ] + ")";
b.push_back(t);
}
swap(a, b);
}
return a[];
}
};
LeetCode Weekly Contest 24的更多相关文章
- LeetCode Weekly Contest 8
LeetCode Weekly Contest 8 415. Add Strings User Accepted: 765 User Tried: 822 Total Accepted: 789 To ...
- leetcode weekly contest 43
leetcode weekly contest 43 leetcode649. Dota2 Senate leetcode649.Dota2 Senate 思路: 模拟规则round by round ...
- LeetCode Weekly Contest 23
LeetCode Weekly Contest 23 1. Reverse String II Given a string and an integer k, you need to reverse ...
- Leetcode Weekly Contest 86
Weekly Contest 86 A:840. 矩阵中的幻方 3 x 3 的幻方是一个填充有从 1 到 9 的不同数字的 3 x 3 矩阵,其中每行,每列以及两条对角线上的各数之和都相等. 给定一个 ...
- LeetCode Weekly Contest
链接:https://leetcode.com/contest/leetcode-weekly-contest-33/ A.Longest Harmonious Subsequence 思路:hash ...
- 【LeetCode Weekly Contest 26 Q4】Split Array with Equal Sum
[题目链接]:https://leetcode.com/contest/leetcode-weekly-contest-26/problems/split-array-with-equal-sum/ ...
- 【LeetCode Weekly Contest 26 Q3】Friend Circles
[题目链接]:https://leetcode.com/contest/leetcode-weekly-contest-26/problems/friend-circles/ [题意] 告诉你任意两个 ...
- 【LeetCode Weekly Contest 26 Q2】Longest Uncommon Subsequence II
[题目链接]:https://leetcode.com/contest/leetcode-weekly-contest-26/problems/longest-uncommon-subsequence ...
- 【LeetCode Weekly Contest 26 Q1】Longest Uncommon Subsequence I
[题目链接]:https://leetcode.com/contest/leetcode-weekly-contest-26/problems/longest-uncommon-subsequence ...
随机推荐
- 【sqli-labs】 less37 POST- Bypass MYSQL_real_escape_string (POST型绕过MYSQL_real_escape_string的注入)
POST版本的less36 uname=1&passwd=1%df' or 1#
- java rsa加密解密
- Coreldraw软件反盗版提示x8有优惠活动 cdr x8提示盗版怎么办?
CorelDRAW X8装不上,我的悲伤有这么大,或者比这还大一点...♥♥♥如果你遇到这样的断了网,卸了装,装了卸,然后再安装的...╮(-_-)╭这样的保存和另存为都点不了,不敢关电脑的亦或是这样 ...
- react功能实现-数组遍历渲染
在react中如何将一个数组遍历,并且逐个渲染在页面上? 1.在jsx渲染中,如果这个变量是一个数组,则会展开这个数组的所有成员. var arr = [ <h1>Hello world! ...
- AtCoder Grand Contest 021完整题解
提示:如果公式挂了请多刷新几次,MathJex的公式渲染速度并不是那么理想. 总的来说,还是自己太弱了啊.只做了T1,还WA了两发.今天还有一场CodeForces,晚上0点qwq... 题解还是要好 ...
- AtCoder ABC 070D - Transit Tree Path
传送门:http://abc070.contest.atcoder.jp/tasks/abc070_d 本题是一个图论问题——树(Tree). 有一棵结点数目为n的无向树.第i条边连接结点ai与bi, ...
- 一些诗词摘抄qwq
声明: 有些违规内容就删掉了--大家都能理解吧qwq 雾失楼台,月迷津渡,桃源望断无寻处.可堪孤馆闭春寒,杜鹃声里斜阳暮.--秦观<踏莎行·郴州旅舍> 郴江幸自绕郴山,为谁流下潇湘去?-- ...
- Codeforces 947E Perpetual Subtraction (线性代数、矩阵对角化、DP)
手动博客搬家: 本文发表于20181212 09:37:21, 原地址https://blog.csdn.net/suncongbo/article/details/84962727 呜啊怎么又是数学 ...
- BA-WG-冷源
冷源群控系统最好由冷源厂家来做的理由 1.冷机厂家对空调的参数十分的清楚,明确的知道冷机的负荷曲线,可以优化冷机加减载的最合理时间达到最佳的节能效果 2.独立的CSM硬件模块,内置不同冷机的型号特性, ...
- [bzoj1552\bzoj2506][Cqoi2014]robotic sort 排序机械臂_非旋转Treap
robotic sort 排序机械臂 bzoj-1552 bzoj-2506 Cqoi-2014 题目大意:给定一个序列,让你从1到n,每次将[1,p[i]]这段区间反转,p[i]表示整个物品权值第i ...