回复: 6
跳转到指定楼层
上一主题 下一主题
收起左侧

黑车公司OA

全局:

2021(1-3月) 码农类General 博士 全职@uber - 内推 - 在线笔试  | | Other | 在职跳槽
本帖最后由 pc27149 于 2021-2-16 12:49 编辑

今天刚做的OA,  分享给大家,好久没做题手都生了
您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies


整理了过去两个月OA的题目,感觉做的时候按照1->4->2->3的顺序比较好。第四题属于leetcode medium,我遇到的覆盖了:双指针,two sum,滑动窗口,数据结构可能要准备(linked)hash(set,map)

求问第二题有没有写起来比较简短的方法。希望大家求职顺利。



补充内容 (2021-2-16 13:54):
第二问的答案又整错了,是[4, 2, 5, 3, 1]。。。

本帖子中包含更多资源

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x

评分

参与人数 5大米 +7 收起 理由
月黑风高 + 1 很有用的信息!
libralmy + 1 很有用的信息!
新鲜的酸奶 + 2 给你点个赞!
myonlysunshine + 2 给你点个赞!
lemon@water + 1 谢谢分享!

查看全部评分


上一篇:以亚麻面试官的角度说说如何准备OOD题目
下一篇:热带雨林 AS onsite
推荐
whiteboard 2021-3-16 07:37:32 | 只看该作者
全局:
本帖最后由 whiteboard 于 2021-3-16 07:38 编辑
HenryXPHB 发表于 2021-2-19 12:23
谢谢分享, 第四题没看明白啥意思。 能解释一下吗

我的理解:

  1. 给定两个数组a和b,还有一连串的query,求结果。query的规则是这样:如果是[0, x], 表示返回 a[i] + b[j] = x的{i, j} pair的个数;如果是[1, i, x], 表示把b[i]替换成x
复制代码


回复

使用道具 举报

推荐
whiteboard 2021-3-16 07:26:28 | 只看该作者
全局:
第二题, 用double linked list和priority queue,总的时间复杂度是O(NlogN),但写得挺长的。

  1. struct Node {
  2.     Node *prev, *next;
  3.     int val;
  4.     Node (int num) {
  5.         prev = next = NULL;
  6.         val = num;
  7.     }
  8. };

  9. void insert(Node *&head, Node *&tail, int num)
  10. {
  11.     Node *node = new Node(num);

  12.     node->prev = tail;
  13.     if (tail)
  14.         tail->next = node;
  15.     else
  16.         head = node;
  17.     tail = node;
  18. }

  19. void remove(Node *&head, Node *&tail, Node *node)
  20. {
  21.     Node *prev = node->prev;
  22.     Node *next = node->next;

  23.     if (prev)
  24.         prev->next = next;
  25.     if (next)
  26.         next->prev = prev;

  27.     if (head == node)
  28.         head = next;
  29.     if (tail == node)
  30.         tail = prev;
  31. }

  32. struct comp {
  33.     bool operator()(const Node *n1, const Node *n2) {
  34.         return n1->val > n2->val;
  35.     }   
  36. };

  37. bool is_peek(Node *node)
  38. {
  39.     int prev_num = INT_MIN, next_num = INT_MIN;
  40.     if (node->prev)
  41.         prev_num = node->prev->val;
  42.     if (node->next)
  43.         next_num = node->next->val;

  44.     if (node->val > prev_num && node->val > next_num)
  45.         return true;

  46.     return false;
  47. }

  48. vector<int> smallest_peeks(vector<int> &nums)
  49. {
  50.     priority_queue<Node *, vector<Node *>, comp> pq;

  51.     Node *head = NULL, *tail = NULL;
  52.     for (int num : nums)
  53.         insert(head, tail, num);

  54.     Node *node = head;
  55.     while (node) {
  56.         if (is_peek(node))
  57.             pq.push(node);
  58.         node = node->next;
  59.     }

  60.     vector<int> result;

  61.     while (!pq.empty()) {
  62.         Node *node = pq.top(); pq.pop();
  63.         Node *prev_node = node->prev;
  64.         Node *next_node = node->next;

  65.         result.push_back(node->val);
  66.         remove(head, tail, node);

  67.         if (prev_node && is_peek(prev_node))
  68.             pq.push(prev_node);
  69.         if (next_node && is_peek(next_node))
  70.             pq.push(next_node);
  71.     }

  72.     return result;
  73. }

  74. int main()
  75. {
  76.     vector<int> nums = {3, 5, 1, 4, 2};
  77.     vector<int> result = smallest_peeks(nums);
  78.     for (int r : result)
  79.         cout << r << " ";
  80.     cout << endl;
  81.     return 0;
  82. }
复制代码

回复

使用道具 举报

🔗
Tsul 2021-2-17 08:37:35 | 只看该作者
全局:
请问oa需要录屏或者开摄像头吗?
回复

使用道具 举报

🔗
 楼主| pc27149 2021-2-17 12:23:57 | 只看该作者
全局:
Tsul 发表于 2021-2-17 08:37
请问oa需要录屏或者开摄像头吗?

是啊 两个都需要 加米加米
回复

使用道具 举报

🔗
HenryXPHB 2021-2-19 12:23:29 | 只看该作者
全局:
谢谢分享, 第四题没看明白啥意思。 能解释一下吗
回复

使用道具 举报

🔗
whiteboard 2021-3-16 07:44:39 | 只看该作者
全局:
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表