一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 964|回复: 8
收起左侧

Indeed OA v5

[复制链接] |试试Instant~ |关注本帖
fezfeng 发表于 2015-10-23 02:07:41 | 显示全部楼层 |阅读模式

2015(10-12月) 码农类 硕士 全职@Indeed - 网上海投 - 在线笔试 |Otherfresh grad应届毕业生

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

您需要 登录 才可以下载或查看,没有帐号?获取更多干货,去instant注册!

x
做完了indeed家的OA快三周,没消息应该是挂了,前一段有点懒,还是发上来万一以后还有遇到OA version 5的希望能有帮助。LZ当时正在酒店准备onsite收的OA邮件,且限定48小时内做完,特别紧迫,可能是怕candidate刷面经吧。题目是best time to buy and sell stock 1 的变种,给你每一天的股价,然后给一个本金,要求只买一次卖一次,但是可以一次性买卖很多share的股票,问到最后最多剩下多少钱。 楼主脑残,9/10 passed,交了以后才想明白自己错在哪,也是蠢~ 还有如果用java的话大家记得要看一下system.in的用法,希望能有帮助!最近没有什么面试,求点好运~~
MosesZhou 发表于 2016-9-14 05:07:32 | 显示全部楼层
qiangJi 发表于 2016-8-3 10:14
是不是这样可以: 无论何时买入,那么肯定是在买入的后面的最高的价格卖出,于是我们使用max 表示从i到le ...

我是这样写的,和best time to buy and sell stocks I 类似,不过max要换成 i / min 。实际上这道题是由stocks I的数组里求最大差变成求最大商了?
  1. int maxProfit (int budget, int[] stocks) {
  2.                 if (budget == 0 || stocks == null || stocks.length == 0) {
  3.                         return 0;
  4.                 }
  5.                
  6.                 double max = Integer.MIN_VALUE;
  7.                 double min = Integer.MAX_VALUE;
  8.                 for (int i : stocks) {
  9.                         min = Math.min(i, min);
  10.                         max = Math.max(max, i / min);
  11.                 } 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  12.                 . 1point3acres.com/bbs
  13.                 int gain = (int) Math.round(budget * max); // gain = budget / min * max
  14.                 return gain;
  15.         }
复制代码
回复 支持 2 反对 0

使用道具 举报

qiangJi 发表于 2016-7-28 20:47:39 | 显示全部楼层
不知道楼主还会不会看,不过还是想问问,stock那个题目是什么意思
回复 支持 反对

使用道具 举报

 楼主| fezfeng 发表于 2016-8-3 06:32:06 | 显示全部楼层
qiangJi 发表于 2016-7-28 20:47. 1point 3acres 璁哄潧
不知道楼主还会不会看,不过还是想问问,stock那个题目是什么意思

就是一个数组 每一个数都是当天的股价(每股单价) 比如 4 10 6 7 1 5 这种, 然后给你100块钱假如, 然后让你决定, 你只能选一天买, 然后选一天卖掉, 但是你可以买很多share, 求最大利润, 比如刚才这组数据,就显然是第一天买第二天卖, 第一天买进25share, 第二天全卖掉, 你的100块钱就变成了250块。
回复 支持 反对

使用道具 举报

qiangJi 发表于 2016-8-3 09:57:57 | 显示全部楼层
fezfeng 发表于 2016-8-3 06:32
就是一个数组 每一个数都是当天的股价(每股单价) 比如 4 10 6 7 1 5 这种, 然后给你100块钱假如, 然 ...

OK。吗,明白了,感谢
回复 支持 反对

使用道具 举报

qiangJi 发表于 2016-8-3 10:14:06 | 显示全部楼层
fezfeng 发表于 2016-8-3 06:32
就是一个数组 每一个数都是当天的股价(每股单价) 比如 4 10 6 7 1 5 这种, 然后给你100块钱假如, 然 ...

是不是这样可以: 无论何时买入,那么肯定是在买入的后面的最高的价格卖出,于是我们使用max 表示从i到len-1的最高价格,这个可以从后向前计算,在计算max数组的过程中,就可以假定在i买入,在max 卖出,于是得到一个局部最优解,i--,这些局部最优解的最大值,就是最后的最优解。.鏈枃鍘熷垱鑷1point3acres璁哄潧
代码如下:
  1. int maxProfit(int []stock,int money){
    .鐣欏璁哄潧-涓浜-涓夊垎鍦
  2.    if(stock == null || stock.length  < 2 || money < 1)  return 0;
  3.     int max = 0;
  4.     int len = stock.length;
  5.     int tempMax = stock[len-1];
  6.    for(int i = len-2; i > -1 ;i--){
  7.       int curP = (money / stock[i] )*(tempMax - stock[i]);
  8.       if( curP > max) max = curP;
  9.       if( stock[i] > tempMax) tempMax = stock[i];
  10.    }. 鍥磋鎴戜滑@1point 3 acres
  11.    return max;
  12. }
复制代码
. 鍥磋鎴戜滑@1point 3 acres
补充内容 (2016-8-3 10:17):
最后剩下的钱,需要用本金加上 获益
回复 支持 反对

使用道具 举报

 楼主| fezfeng 发表于 2016-8-4 08:32:28 | 显示全部楼层
qiangJi 发表于 2016-8-3 10:14
是不是这样可以: 无论何时买入,那么肯定是在买入的后面的最高的价格卖出,于是我们使用max 表示从i到le ...

对的 这个做法没问题
回复 支持 反对

使用道具 举报

edyyy 发表于 2016-8-4 08:39:01 | 显示全部楼层
看样子要lc刷过一两遍才有底气啊

补充内容 (2016-8-4 08:39):
只是现在题库都有快400道题了,很是愁人。

补充内容 (2016-8-4 08:40):
现在就是lc题库快400题了,很是愁人
回复 支持 反对

使用道具 举报

sophie729 发表于 2016-11-23 01:27:18 | 显示全部楼层
fezfeng 发表于 2016-8-4 08:32. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
对的 这个做法没问题
. 1point 3acres 璁哄潧
看别人说 最好还是催一下 hr 给feedback 才行。。。不过过去这么久 不太确定了
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-5 17:15

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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