楼主: 匿名
跳转到指定楼层
上一主题 下一主题
收起左侧

Google 面经

全局:
匿名者 发表于 2021-9-10 08:50
感觉可以2 pointer, 遇到都是active, 先执行小的,同时move pointer forward, 两个一个active 一个passive ...

感觉应该是这个思路
回复

使用道具 举报

🔗
cxj2 2021-9-14 13:31:31 | 只看该作者
全局:
在两个指针指向active的基础上, 看谁后面的passive长   ,谁先      。不知道是否可以                                                                                                                                                                          
回复

使用道具 举报

🔗
cxj2 2021-9-14 13:42:11 | 只看该作者
全局:
ghu97 发表于 2021-9-12 22:34
想到一个greedy的做法,不确定对不对,有没有test case可以试一试?
就是优先做Passive开头的任务,然后都 ...

感觉这个比较可能对
回复

使用道具 举报

🔗
dadiaomengmei 2021-9-25 01:49:16 | 只看该作者
全局:
  1. public static void recipe() {
  2.     String[][] r1 = {{"3", "ACTIVE"}, {"10", "PASSIVE"}};
  3.     String[][] r2 = {{"4", "ACTIVE"}, {"15", "PASSIVE"}};

  4.     int[][] record = new int[2][2];//[[a1, p1], [a2, p2]];
  5.     int s1 = 0, s2 = 0;
  6.     int total = 0;
  7.     while (s1 < r1.length && s2 < r2.length || record[0][0] > 0 || record[1][0] > 0) {
  8.       if (record[0][0] == 0 && record[1][0] == 0) {
  9.         while (s1 < r1.length && "ACTIVE".equals(r1[s1][1])) {
  10.           record[0][0] += Integer.parseInt(r1[s1++][0]);
  11.         }
  12.         while (s1 < r1.length && "PASSIVE".equals(r1[s1][1])) {
  13.           record[0][1] += Integer.parseInt(r1[s1++][0]);
  14.         }

  15.         while (s2 < r2.length && "ACTIVE".equals(r2[s2][1])) {
  16.           record[1][0] += Integer.parseInt(r2[s2++][0]);
  17.         }
  18.         while (s2 < r2.length && "PASSIVE".equals(r2[s2][1])) {
  19.           record[1][1] += Integer.parseInt(r2[s2++][0]);
  20.         }
  21.       }

  22.       System.out.println(record[0][0]+","+record[0][1]);
  23.       System.out.println(record[1][0]+","+record[1][1]);

  24.       boolean switched = false;
  25.       if (record[0][1] > record[1][1]) {
  26.         int[] temp = record[0];
  27.         record[0] = record[1];
  28.         record[1] = temp;
  29.         switched = true;
  30.       }

  31.       //passive2 >= passive1
  32.       total += record[1][0] + record[1][1];
  33.       record[1][0] = 0; //clean active2
  34.       int diff = record[0][0] - record[1][1];
  35.       record[0][0] = Math.max(0, diff);  //clean active1
  36.       record[1][1] = Math.max(0, -diff);  //clean passive2 with active1
  37.       diff = record[0][1] - record[1][1];
  38.       record[0][1] = Math.max(0, diff);   //clean passive1
  39.       record[1][1] = Math.max(0, -diff);  //clean passive2 with passive1
  40.       total -= record[1][1];  //reduce rest of passive2 which will roll into next round

  41.       if (switched) {
  42.         int[] temp = record[0];
  43.         record[0] = record[1];
  44.         record[1] = temp;
  45.       }
  46.       System.out.println("--"+total);
  47.     }
  48.     total += record[0][1] + record[1][1];
  49.     System.out.println("--"+total);
  50.   }
复制代码
output:
3,10
4,15
--17
--19 (final result)
回复

使用道具 举报

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

使用道具 举报

地里匿名用户
🔗
匿名用户-P09TI  2021-9-25 04:05:33 来自APP
HC会直接丢掉难度过高的dp这一轮 不知道有些面试官是怎么想的 这样自己gHire里记录也好看不了吧。。
回复

使用道具 举报

🔗
mumuceiber 2021-9-25 04:26:02 | 只看该作者
全局:
谢谢楼主分享!!
回复

使用道具 举报

🔗
南宫狗剩 2021-10-9 05:59:06 | 只看该作者
全局:
感觉greedy不行,应该还是要用dp。
目前有一点想法:dp长和宽分别是R1和R2的总时长,dp[i][j] = t表示R1运行i小时+R2运行j小时的情况下最小需要t时间。如果i,j所在的项目都是ACTIVE的话只能横着或竖着走,否则一律斜着走,再用个minheap每次选t最小值的点计算,最后跑完读取dp[sum1][sum2]。
回复

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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