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

10月23日onsite面试

🔗
 楼主| hhllryslh 2015-11-18 15:33:44 | 只看该作者
全局:
queeniejing 发表于 2015-11-18 15:13
谢谢LZ 只要走到出口就行了吗? 还是要求最短路径或者其他的什么?

我不大记得了 应该是要求出最短路径的 要把路径返回的
回复

使用道具 举报

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

使用道具 举报

🔗
宝贝忆彼岸 2015-11-18 15:48:43 | 只看该作者
全局:
queeniejing 发表于 2015-11-18 15:13
谢谢LZ 只要走到出口就行了吗? 还是要求最短路径或者其他的什么?

哦哦,明白了,题目是要输出最多overlap的时间段是吧?我以为要输出所有overlap的时间段。。。。那上面的例子就应该输出[3,7]?
回复

使用道具 举报

🔗
宝贝忆彼岸 2015-11-18 15:48:54 | 只看该作者
全局:
hj867955629 发表于 2015-11-18 15:33
这种题也可以把所有start看成正数,所有end看成负数,然后绝对值排序,这里就是 1 2 3 -7 -10 -11, 顺 ...

嗯嗯,知道啦!
回复

使用道具 举报

🔗
shuishuimiao 2015-11-19 04:46:29 | 只看该作者
全局:
请问楼主 那题迷宫是求最小的步数走到出口么 还是只是找到一个路径走到出口?
回复

使用道具 举报

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

使用道具 举报

🔗
hj867955629 2015-11-19 09:12:01 | 只看该作者
全局:
queeniejing 发表于 2015-11-19 05:14
我有个问题不太理解: “就是 1 2 3 -7 -10 -11, 顺序扫一遍,遇到正的次数加1,负得次数减1,次数大 ...

中间会大于1呀。。比如扫到2,遇到两个正数1和2,所以次数为2,说明从2开始的部分是重叠两次
回复

使用道具 举报

🔗
bobzhang2004 2015-12-5 23:23:49 | 只看该作者
全局:
请问楼主第三轮是求最多overlap的个数吗?
回复

使用道具 举报

🔗
bobzhang2004 2015-12-5 23:50:35 | 只看该作者
全局:
写了下sort array a*x^2 + bx + c的代码,这题代码量也不少啊。。。
  1. public class SortSortedArray {

  2.         public static void main(String[] args) {
  3.                 int[] arr = {-5, -3, -1, 0, 4, 9, 11, 13};
  4.                 int[] res = sortSortedArray(arr, -1, 2, 0);
  5.                 for (int i : res) {
  6.                         System.out.print(i + " ");
  7.                 }
  8.         }
  9.         public static int[] sortSortedArray(int[] arr, int a, int b, int c) {
  10.                 int pivot = -b / (2 * a);
  11.                 int[] res = new int[arr.length];
  12.                 int index = findPivot(arr, pivot);
  13.                 int left = index;
  14.                 int right = index + 1;
  15.                 boolean faceUp = true;
  16.                 if (a < 0) {
  17.                         faceUp = false;
  18.                 }
  19.                 int pos = 0;
  20.                 if (faceUp) {
  21.                         while (left >= 0 && right < arr.length) {
  22.                                 if (getResult(arr[left], a, b, c) > getResult(arr[right], a, b, c)) {
  23.                                         res[pos++] = getResult(arr[right], a, b, c);
  24.                                         right++;
  25.                                 } else {
  26.                                         res[pos++] = getResult(arr[left], a, b, c);
  27.                                         left--;
  28.                                 }
  29.                         }
  30.                         while (left >= 0) {
  31.                                 res[pos++] = getResult(arr[left], a, b, c);
  32.                                 left--;
  33.                         }
  34.                         while (right < arr.length) {
  35.                                 res[pos++] = getResult(arr[right], a, b, c);
  36.                                 right++;
  37.                         }
  38.                 } else {
  39.                         pos = res.length - 1;
  40.                         while (left >= 0 && right < arr.length) {
  41.                                 if (getResult(arr[left], a, b, c) > getResult(arr[right], a, b, c)) {
  42.                                         res[pos--] = getResult(arr[left], a, b, c);
  43.                                         left--;
  44.                                 } else {
  45.                                         res[pos--] = getResult(arr[right], a, b, c);
  46.                                         right++;
  47.                                 }
  48.                         }
  49.                         while (left >= 0) {
  50.                                 res[pos--] = getResult(arr[left], a, b, c);
  51.                                 left--;
  52.                         }
  53.                         while (right < arr.length) {
  54.                                 res[pos--] = getResult(arr[right], a, b, c);
  55.                                 right++;
  56.                         }
  57.                 }
  58.                 return res;
  59.         }

  60.         private static int getResult(int i, int a, int b, int c) {
  61.                 return a * i * i + b * i + c;
  62.         }

  63.         private static int findPivot(int[] arr, int pivot) {
  64.                 int start = 0;
  65.                 int end = arr.length - 1;
  66.                 while (start + 1 < end) {
  67.                         int mid = (end - start) / 2 + start;
  68.                         if (arr[mid] == pivot) {
  69.                                 return mid;
  70.                         } else if (arr[mid] > pivot) {
  71.                                 end = mid;
  72.                         } else {
  73.                                 start = mid;
  74.                         }
  75.                 }
  76.                 if (arr[end] <= pivot) {
  77.                         return end;
  78.                 } else {
  79.                         return start;
  80.                 }
  81.         }
  82. }
复制代码
回复

使用道具 举报

🔗
bobzhang2004 2015-12-5 23:53:17 | 只看该作者
全局:
hhllryslh 发表于 2015-11-18 09:52
就是
得定义一个 Point struct
struct Point{

请问这么做和一次走1步2步没什么关系啊,2步不就是走两次吗?是要求最小的走得次数吗?
回复

使用道具 举报

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

本版积分规则

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