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

狗家OA面经 12月果然有新题

全局:

2018(10-12月) 码农类General 硕士 实习@google - 内推 - 在线笔试  | | Other | 应届毕业生

注册一亩三分地论坛,查看更多干货!

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

x
timeline 10.19内推-》10.27网上申请-》11.29收到OA-》12.6完成OA (果然我是一如既往的拖)

这次写在最前面,求米求米求米~
一直听说12月该出新题了,果然出了地里没见过的题,不过倒是蛮简单的

第一题 给一个全是int的array A,可以选择从array的任何一个index开始跳往后跳。记当前是第i次jump,如果i是奇数,需要跳到
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
al还抽时间写OA的份上,求来个电面吧呜呜呜


补充内容 (2018-12-11 13:15):
刚刚收到了拒信。。讲道理都做出来了,没道理拒啊,是不是已经没坑位了。。

评分

参与人数 9大米 +20 收起 理由
wzr1996316 + 1 感谢分享
ironfat + 2 很有用的信息!
yanjiaxiaoqiqi + 1 赞一个
dreamer_yuan + 3 很有用的信息!
萨马拉比 + 1 赞一个

查看全部评分


上一篇:yelp 三番 onsite
下一篇:优步 freight 电面
推荐
pengbomuzzy 2018-12-9 04:39:19 | 只看该作者
全局:
  1. class Solution {
  2.     // 第一题 给一个全是int的array A,可以选择从array的任何一个index开始跳往后跳。
  3.     // 记当前是第i次jump,如果i是奇数,需要跳到后面所有比当前数字大的数字中最小的一个的位置,如果i是偶数,就要跳到所有比当前数字小的中,数字最大的一个的位置。
  4.     // 求输出整个array中能跳到最后一位的数字有几个。
  5.     // 比如说[10,13,12,14,15], 只有14可以跳到15(第1次跳,是奇数,14后面只有15,且15>14,到达),以及15本身就在最后,所以输出2.
  6.     int num = 0;

  7.     public int findAll(int[] input) {
  8.         for(int i=0;i<input.length;i++){
  9.             findNumberOfJumps(input, i, i, true);
  10.         }
  11.         return num;
  12.     }

  13.     public void findNumberOfJumps(int[] input, int pivotIndex, int currIndex, boolean isOdd) {
  14.         if(currIndex >= input.length){
  15.             return;
  16.         }

  17.         if(currIndex==input.length-1){
  18.             num++;
  19.             return;
  20.         }

  21.         int index;
  22.         if(isOdd){
  23.             index = findSmallestOfLarge(input, pivotIndex, currIndex);
  24.         }else{
  25.             index = findLargestOfSmall(input, pivotIndex, currIndex);
  26.         }

  27.         if(index==-1){
  28.             return;
  29.         }

  30.         findNumberOfJumps(input, pivotIndex, index, !isOdd);

  31.     }

  32.     public int findSmallestOfLarge(int[] arr, int pivotIndex, int currIndex) {
  33.         int result = arr[pivotIndex];
  34.         int index = 0;
  35.         for(int i = currIndex+1; i<arr.length; i++) {
  36.             int elem = arr[i];
  37.             if(i == currIndex+1 && elem > result) {
  38.                 result = elem;
  39.                 index = i;
  40.                 continue;
  41.             }

  42.             if(elem > arr[pivotIndex] && elem < result){
  43.                 result = elem;
  44.                 index = 1;
  45.             }
  46.         }

  47.         return result == arr[pivotIndex] ? - 1 : index;
  48.     }

  49.     public int findLargestOfSmall(int[] arr, int pivotIndex, int currIndex) {
  50.         int result = arr[pivotIndex];
  51.         int index = 0;
  52.         for(int i = currIndex+1; i<arr.length; i++) {
  53.             int elem = arr[i];
  54.             if(i == currIndex+1 && elem < result) {
  55.                 result = elem;
  56.                 index = i;
  57.                 continue;
  58.             }

  59.             if(elem < arr[pivotIndex] && elem > result){
  60.                 result = elem;
  61.                 index = i;
  62.             }
  63.         }

  64.         return result == arr[pivotIndex] ? - 1 : index;
  65.     }
  66. }
复制代码

补充内容 (2018-12-9 04:40):
随手写了一下,求大神们指点。。。

补充内容 (2018-12-9 04:41):
应该还有特别简单的方法,求大神po下~
回复

使用道具 举报

推荐
 楼主| inhow 2018-12-7 10:16:36 | 只看该作者
全局:
sdzcdexx 发表于 2018-12-7 09:40
楼主关于第一题有点不明白的是,比如第一个元素跳到了后面的一个位置,那么再往后面比的时候仍然是用第一个 ...

还是用原来的数字啦,这个跳不是覆盖的意思,ummm,就好像是人踩在数字上跳过去那种感觉吧hhhhh,数组里会有重复数字的,比如说[1,1,1,1,1,1],输出的应该是1,因为只有最后一个数字本身就在最后,其他都没办法跳
回复

使用道具 举报

推荐
64203221 2018-12-7 14:52:59 | 只看该作者
全局:
inhow 发表于 2018-12-7 11:37
woc好问题。。感觉我凉了。。并没有考虑到这个。。按照题意应该是跳到后面那个2吧,这样就算是能跳到最后 ...

刚做完OA, 我发现题意好像是 有重复数字的话 跳 index最小的那个
回复

使用道具 举报

🔗
sdzcdexx 2018-12-7 09:40:25 | 只看该作者
全局:
楼主关于第一题有点不明白的是,比如第一个元素跳到了后面的一个位置,那么再往后面比的时候仍然是用第一个元素还是当前跳到位置的元素进行比较呢?还有就是数组里有重复元素么?
回复

使用道具 举报

🔗
pengbomuzzy 2018-12-7 09:57:32 | 只看该作者
全局:
sdzcdexx 发表于 2018-12-7 09:40
楼主关于第一题有点不明白的是,比如第一个元素跳到了后面的一个位置,那么再往后面比的时候仍然是用第一个 ...

看着感觉是用跳到当前位置的元素进行比较吧?
回复

使用道具 举报

🔗
Candela 2018-12-7 11:04:40 | 只看该作者
全局:
inhow 发表于 2018-12-7 10:16
还是用原来的数字啦,这个跳不是覆盖的意思,ummm,就好像是人踩在数字上跳过去那种感觉吧hhhhh,数组里 ...

请问楼主像[1, 2, 2]这样的数据,1是跳到哪一个2呢?
回复

使用道具 举报

🔗
sunshine18 2018-12-7 11:13:27 | 只看该作者
全局:
我刚才做的也是新题。。。
回复

使用道具 举报

全局:
谢谢lZ分享。其实是怕烙印来看资料~哈哈哈
回复

使用道具 举报

🔗
 楼主| inhow 2018-12-7 11:37:22 | 只看该作者
全局:
Candela 发表于 2018-12-7 11:04
请问楼主像[1, 2, 2]这样的数据,1是跳到哪一个2呢?

woc好问题。。感觉我凉了。。并没有考虑到这个。。按照题意应该是跳到后面那个2吧,这样就算是能跳到最后了。
回复

使用道具 举报

🔗
keith.collens 2018-12-7 13:19:06 | 只看该作者
全局:
奇数跳偶数跳这个题最近出现的好多啊
回复

使用道具 举报

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

本版积分规则

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