📣 Back to School开学季 - VIP通行证5折优惠!蓝莓、Offer多多同步优惠
12
返回列表 发新帖
楼主: 匿名
跳转到指定楼层
上一主题 下一主题
收起左侧

Doordash 新鲜面经

地里匿名用户
🔗
匿名用户-WS6D8  2022-1-4 15:26:53
您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
回复

使用道具 举报

🔗
LinaQTRI 2022-1-6 04:10:01 | 只看该作者
全局:
本帖最后由 LinaQTRI 于 2022-1-5 12:26 编辑


每次remove nums中的值,可以把priorityqueue里的做法移到你的第一个循环里。每次循环只poll一个最小的peak出来。然后把nums中的这个值remove掉。
好像还是不对,我这个时间复杂度是n2logn了。lz那个实在太复杂了。
回复

使用道具 举报

🔗
r0_0e 2022-1-23 08:07:34 | 只看该作者
全局:
您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
回复

使用道具 举报

🔗
pnhjd 2022-3-30 12:14:50 | 只看该作者
全局:
我觉得完全可以用Double Linked List + PQ的结合来解题,思路非常类似LRU Cache蠡口幺丝溜。
回复

使用道具 举报

地里匿名用户
🔗
匿名用户-WS6D8  2022-5-2 08:25:15
闲来无事自己写了一个,下周准备面三哥。
  1. import java.util.*;

  2. class Solution {
  3.     public int[] solve(int[] nums) {
  4.         int[] result = new int[nums.length];

  5.         PriorityQueue<Node> queue = new PriorityQueue<>((a, b) -> a.val - b.val);

  6.         Node head = new Node(Integer.MIN_VALUE);
  7.         Node tail = new Node(Integer.MIN_VALUE);

  8.         head.next = tail;
  9.         tail.pre = head;

  10.         for (int num : nums) {
  11.             tail.insertBefore(new Node(num));
  12.         }

  13.         Node temp = head.next;
  14.         while (temp.next != null) {
  15.             if (temp.val > temp.pre.val && temp.val > temp.next.val) {
  16.                 queue.add(temp);
  17.             }
  18.             temp = temp.next;
  19.         }

  20.         int index = 0;
  21.         while (!queue.isEmpty()) {
  22.             Node curr = queue.poll();
  23.             result[index++] = curr.val;
  24.             Node pre = curr.pre;
  25.             Node next = curr.next;
  26.             curr.removeSelf();
  27.             if (pre != head && pre != tail && pre.val > pre.pre.val && pre.val > pre.next.val) {
  28.                 queue.add(pre);
  29.             }
  30.             if (next != head && next != tail && next.val > next.pre.val
  31.                 && next.val > next.next.val) {
  32.                 queue.add(next);
  33.             }
  34.         }

  35.         return result;
  36.     }

  37.     private class Node {
  38.         Node pre;
  39.         Node next;
  40.         int val;

  41.         Node(int v) {
  42.             val = v;
  43.         }

  44.         private void insertBefore(Node toInsert) {
  45.             this.pre.next = toInsert;
  46.             toInsert.pre = this.pre;
  47.             this.pre = toInsert;
  48.             toInsert.next = this;
  49.         }

  50.         private void removeSelf() {
  51.             this.pre.next = this.next;
  52.             this.next.pre = this.pre;
  53.         }
  54.     }
  55. }
复制代码
回复

使用道具 举报

🔗
yigeiwuligiao 2022-6-14 01:10:09 | 只看该作者
全局:
这难道不是单调栈可解吗?
回复

使用道具 举报

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

本版积分规则

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