关注
第一题:双指针 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;
}
查看原帖
点赞 评论
牛客热帖
更多
- 1... 大二无实习怎么做到获得一份月薪1.5w+量化的实习和多份大厂核心部门实习的1.6W
- 2... 出身寒微,却攥住鹅厂的入场券1.3W
- 3... 机械八股之材料力学笔面试难点与常考点整理1.2W
- 4... 银行秋招9931
- 5... 那些未曾答上来的硬核面试问题4197
- 6... 拼尽全力仍无法战胜美团。27大三双非鼠鼠被美团激情拷打3h3759
- 7... 我眼里的悲伤3696
- 8... 能做到吗?字节抖音电商秋招记录2970
- 9... 华为主管面准备笔记/适用于一切HR面经验贴2530
- 10... 滴滴后端oc面经总结 Java人拿到Go的云原生意向2327
正在热议
更多
# 从顶到拉给所有面过的公司评分 #
6816次浏览 74人参与
# 晒晒你的中秋福利 #
14415次浏览 86人参与
# 为了求职,我做过的疯狂伪装 #
9412次浏览 127人参与
# 广联达求职进展汇总 #
10391次浏览 50人参与
# 职场破冰,你们都聊什么? #
5116次浏览 55人参与
# 产品每日一题 #
60435次浏览 604人参与
# 实习要如何选择和准备? #
114207次浏览 1436人参与
# 聊聊这家公司值得去吗 #
550297次浏览 3668人参与
# 机械人,你最希望上岸的公司是? #
181625次浏览 1894人参与
# 你面试被问到过哪些不会的问题? #
16771次浏览 662人参与
# 机械笔面试考察这些知识点 #
10101次浏览 89人参与
# 如何快速融入团队? #
31881次浏览 278人参与
# bilibili求职进展汇总 #
82162次浏览 759人参与
# 浪潮求职进展汇总 #
16252次浏览 131人参与
# 你觉得早上几点上班合适? #
82055次浏览 329人参与
# 上班后和你想的一样吗? #
78859次浏览 629人参与
# 工作压力大怎么缓解 #
104430次浏览 1046人参与
# 远景求职进展汇总 #
61076次浏览 317人参与
# 电网笔面经互助 #
46146次浏览 428人参与
# 秋招报数:你投了多少家公司? #
24111次浏览 243人参与