关注
第一题:双指针 void core(string &str)
{
int len = str.size(), cur, right;
cur = right = len - 1;
for (; cur >= 0; cur--)
{
if (str[cur] == '#')
continue;
else
{
if (cur != right)
swap(str[cur], str[right]);
right--;
}
}
}
第二题:动态规划 略 第三题:最小公共祖先+dfs 代码未测试 struct TreeNode {
int val;
TreeNode *left;
TreeNode *right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {
if (!root || root == p || root == q) return root;
TreeNode *left = lowestCommonAncestor(root->left, p, q);
TreeNode *right = lowestCommonAncestor(root->right, p, q);
if (!left && !right)
return root;
if (!right) return right;
else return left;
}
bool dfs(TreeNode *root, TreeNode *p, TreeNode *q, vector<TreeNode*> &path, vector<vector<TreeNode*>> &res)
{
if (!root) return false;
if (root == p || root == q)
{
path.push_back(root);
res.push_back(path);
path.pop_back();
return true;
}
path.push_back(root);
if (dfs(root->left, p, q, path, res)) return true;
if (dfs(root->right, p, q, path, res)) return true;
path.pop_back();
return false;
}
vector<TreeNode*> findPath(TreeNode* root, TreeNode* p, TreeNode* q)
{
TreeNode *ancestor = lowestCommonAncestor(root, p, q);
vector<TreeNode*> left_path, right_path;
vector<vector<TreeNode*>> res;
dfs(ancestor->left, p, q, left_path, res);
dfs(ancestor->right, p, q, right_path, res);
vector<TreeNode*> path;
for (int i = res[0].size() - 1; i >= 0; i--)
path.push_back(res[0][i]);
path.push_back(ancestor);
for (int i = 0; i < (int)res[1].size() - 1; i++)
path.push_back(res[1][i]);
return path;
}
查看原帖
点赞 评论
相关推荐
多黑子:去线下收简历的,网申的一律不去
点赞 评论 收藏
分享
昨天 16:00
江苏科技大学 Java 点赞 评论 收藏
分享


点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 面试时间长是好事吗? #
25925次浏览 224人参与
# 入职跑路最快的一次经历 #
5025次浏览 65人参与
# 乐堡互娱校招 #
9190次浏览 122人参与
# 校招谈薪技巧 #
11078次浏览 201人参与
# ___岗狗都不干,我干! #
3441次浏览 36人参与
# 提名点击就挂的公司 #
29936次浏览 156人参与
# 思朗科技求职进展汇总 #
10336次浏览 127人参与
# 你在职场中沾染到的“坏”习惯 #
3250次浏览 46人参与
# 国企秋招,你投了吗? #
3068次浏览 39人参与
# 拿到offer之后,可以做些什么 #
5965次浏览 62人参与
# 大学四年该怎么过,才不算浪费时间? #
10478次浏览 67人参与
# TCL华星光电工作体验 #
4925次浏览 19人参与
# 机械/制造每日一题 #
66566次浏览 1083人参与
# 如何看待应届生身份? #
152906次浏览 1595人参与
# 材料人的华为红黑体验 #
29772次浏览 171人参与
# 双非本科的出路是什么? #
150019次浏览 1337人参与
# 毕业季,你想好怎么跟生活对线了吗? #
244488次浏览 3809人参与
# 面试被问第一学历差时该怎么回答 #
170793次浏览 1174人参与
# 你投递的公司有几家约面了? #
132789次浏览 904人参与
# 秋招后遗症 #
36226次浏览 301人参与
# 度小满求职进展汇总 #
5720次浏览 35人参与
# 你的国庆怎么过 #
35138次浏览 349人参与