123
返回列表 发新帖
楼主: levi947tw
跳转到指定楼层
上一主题 下一主题
收起左侧

亞麻 2024 New Grad OA

   
地里匿名用户
🔗
匿名用户-W1LJH  2024-6-6 02:42:07
请问lz 28号面的出结果了吗
回复

使用道具 举报

地里匿名用户
🔗
匿名用户-CAOEX  2024-6-7 20:03:19
levi947tw 发表于 2024-5-30 20:37
看來你也快 VO 了,那我大概描述一下。
一輪 VO 一個小時, 一至二位面試官,但只有一位面試官會負責問你 ...

用倒序pq,这样最大的数永远在最前面,村的时候除了存值也要同时存index。然后按顺序弹出pq,每次判断在数组中这个元素的后两位,如果后一位没被选择作为切点且再后一位不是数组尾端点的话,则标记被弹出的当前元素后一位为切点,然后记录到一个set里。重复整个流程直到pq弹空。祝楼主面试顺利!
回复

使用道具 举报

全局:
第二题我想到一个解法,是先用greedy去找最多的分区,到最后一个分区如果无法满足要求,再将它与前一个分区合并,直到合并成一个满足要求的分区,不知道大家觉得这样可以吗?我自己测试起来还没发现问题,O(n)
  1. def max_balanced_shipments_optimized(weights):
  2.     if weights[-1] == max(weights):
  3.         return 0

  4.     n = len(weights)
  5.     shipments = []
  6.     left, right = 0, 1
  7.     while left < n:
  8.       current_max = weights[left]
  9.       balanced = False
  10.       while right < n:
  11.         current_max = max(current_max, weights[right])
  12.         if weights[right] < current_max:
  13.           shipments.append((left, right))
  14.           left = right + 1
  15.           right = left + 1
  16.           balanced = True
  17.           break
  18.         right += 1

  19.       if not balanced:
  20.         break

  21.     for i, j in shipments[::-1]:
  22.       if weights[-1] >= max(weights[i:j]):
  23.         shipments.remove((i, j))
  24.       else:
  25.         break

  26.     return len(shipments)
复制代码
回复

使用道具 举报

地里匿名用户
🔗
匿名用户-HXDLW  2024-6-16 05:11:14
匿名用户 发表于 2024-5-30 17:35
原题是10^ 5的数据量,所以希望你给出来的解法是nlogn复杂度,一般如果是10 ** 9的数据量的话就暗示只能n ...

学到了 多谢老哥
回复

使用道具 举报

🔗
7488ahaha 2024-6-17 15:27:49 | 只看该作者
全局:
请问一下楼主或者其他朋友,BQ会考虑你之前经历和岗位的相关性吗?我面的也是楼主这个方向,但是因为转码简历里几乎没有这些东西,到时候BQ是要瞎编一个类似的项目还是就说其他方向的项目就好?
回复

使用道具 举报

🔗
Falldawn 2024-6-21 04:06:13 | 只看该作者
全局:
本帖最后由 Falldawn 于 2024-6-20 13:09 编辑

这题一开始我也想monotonic stack,但是感觉不对,就只要碰到有递减的时候就可以了,最后如果连续递增那就返回0
  1. public int findMaximumBalancedShipments(int[] weight) {
  2.         if (weight == null || weight.length < 2) {
  3.             return 0;
  4.         }
  5.         int n = weight.length;
  6.         int res = 0;
  7.         boolean isAsending = false;
  8.         for (int i = 1; i < n; i++) {
  9.             if (weight[i - 1] > weight[i]) {
  10.                 res++;
  11.                 i++;
  12.                 isAsending = false;
  13.             }else {
  14.                 isAsending = true;
  15.             }
  16.         }

  17.         return isAsending ? 0 : res;
  18.     }

复制代码
回复

使用道具 举报

地里匿名用户
🔗
匿名用户-CP9LS  2024-6-21 16:53:19
匿名用户 发表于 2024-6-7 05:03
用倒序pq,这样最大的数永远在最前面,村的时候除了存值也要同时存index。然后按顺序弹出pq,每次判断在 ...

麻烦可以再多解释一下吗? 有了每一个切点,之后要怎么操作运算呢 🙏
回复

使用道具 举报

地里匿名用户
🔗
匿名用户-CZG80  2024-8-13 04:46:02
Falldawn 发表于 2024-6-21 04:06
这题一开始我也想monotonic stack,但是感觉不对,就只要碰到有递减的时候就可以了,最后如果连续递增那就 ...

不对,照着这个思路[1,2,3,1,2]输出是0,但其实应该是1
回复

使用道具 举报

全局:
lz 面試用中文還英文?
應該是EERO?
回复

使用道具 举报

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

本版积分规则

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