我是如何肉身翻墙,从国内直接来美国工作的?

一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货
码农求职神器Triplebyte:
不用海投
内推多家公司面试
坐标湾区
Games Startup
招聘游戏开发工程师
游戏初创公司招聘工程师、UIUX Designer和游戏策划
把贵司招聘信息放这里
查看: 2606|回复: 15
收起左侧

Bloomberg电面

[复制链接] |试试Instant~ |关注本帖
我的人缘0
eliblack 发表于 2016-2-27 16:00:18 | 显示全部楼层 |阅读模式
  此人很可信:
 
0% (暂未有人投票) 【我投】
  此人瞎逼逼:
 
0% (暂未有人投票) 【我投】

2016(1-3月) 码农类General 硕士 全职@Bloomberg - Other - 技术电面  | Fail | fresh grad应届毕业生

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

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

x
周一(2.22)的电面,应该是白人小哥,上来就问下简历,问你觉得值得讲的project,我讲了实习,blablabla。。然后问了下java基础,一来就定义memory leak,我说java是memory safe language blablabla,他说通过什么memory safe,我说Garbage Collection,然后问Garbage Collection怎么确定哪些object不要了。。
然后就开始做题,因为我实习是在一家financial的公司,data vendor其中一个就是Bloomberg,然后做的一个tool是用来给management team查看股票状态的,他就给我出了stock market。。。
leetcode 原题,思路理一遍,很快搞定,然后他因为登陆有点问题就跟我一样是在hackrank上是candidate,然后还一个testcase一个testcase对,然后我还要给他讲解我的代码。。。
完了问follow up,如果可以做无限次交易,然后每次交易有一个cost,本来还想来个cost不固定= =,后来说简单点就设成0.01吧
[1.2 1.3 1.6 1.1 1.2] 如果这个按照leetcode原题无限次交易的思想,那么是要在1.2买,1.3卖,1.3买,1.6卖这样子做两次(所有的increasing pair),引入cost了以后就是从1.2买,1.6卖了。
我一开始想了下,一下子没想出来,他提示了我说你看看会有什么规律,然后我发现如果是一直递增的话,就没必要卖掉,一直到递减的那刹那。
代码大概是. from: 1point3acres
public double solution(double [] prices). 牛人云集,一亩三分地
{
      double min = prices[0];
      double profit = 0;.1point3acres网
      double cost = 0.01;. 1point 3acres 论坛
     for(int i=1;i<prices.length;i++)
     {
         if(prices[i]>prices[i-1])
                continue;. 牛人云集,一亩三分地
         else. From 1point 3acres bbs
             {
                if(prices[i-1]-min>cost)
                  profit = profit + prices[i-1] - min - cost;
                  min = prices[i];
             }. 1point 3acres 论坛
      }
     return profit;
}
他看完了以后,说我这个不应该要keep min variable,我觉得好奇怪,然后说[1.2 1.3 1.1 1.6]就不对了,我说没什么不对啊,就是应该买两次 0.1+0.5-2*0.01的profit啊。然后就有点不知道他在不满意什么了,最后就把我 profit = profit + prices[i-1] - min - cost变成了 - 2*cost,说这样就好。然后我说我以为你的意思是一个整个transaction是一个cost。
然后到这里,就快到45分钟了,然后就问了几个问题就挂掉了,然后第二天就来了拒信。。。果然跟地里面经说的一样,只做了一个题一般就挂掉了。。。

评分

3

查看全部评分


上一篇:Snapchat OA热乎乎的
下一篇:Amazon Kindle 组电面
我的人缘0
 楼主| eliblack 发表于 2016-2-28 03:13:39 | 显示全部楼层
  此人很可信:
 
0% (暂未有人投票) 【我投】
  此人瞎逼逼:
 
0% (暂未有人投票) 【我投】
e6175423 发表于 2016-2-27 22:05
楼主,follow up不是leetcode.com/problems/best-time-to-buy-and-sell-stock-ii吗?

同学。。。仔细看帖啊,有cost啊。。“如果这个按照leetcode原题无限次交易的思想,那么是要在1.2买,1.3卖,1.3买,1.6卖这样子做两次(所有的increasing pair),引入cost了以后就是从1.2买,1.6卖了。”

我在帖子里都说的这么清楚了
回复 支持 1 反对 0

使用道具 举报

我的人缘0
e6175423 发表于 2016-2-27 22:05:44 | 显示全部楼层
  此人很可信:
 
0% (暂未有人投票) 【我投】
  此人瞎逼逼:
 
0% (暂未有人投票) 【我投】
回复 支持 反对

使用道具 举报

我的人缘0
jiajunxu20 发表于 2016-2-28 04:09:25 | 显示全部楼层
  此人很可信:
 
0% (暂未有人投票) 【我投】
  此人瞎逼逼:
 
0% (暂未有人投票) 【我投】
所以就有点变成找极值的问题,只在极值那点交易,减少交易次数
回复 支持 反对

使用道具 举报

我的人缘0
 楼主| eliblack 发表于 2016-2-28 04:13:31 | 显示全部楼层
  此人很可信:
 
0% (暂未有人投票) 【我投】
  此人瞎逼逼:
 
0% (暂未有人投票) 【我投】
jiajunxu20 发表于 2016-2-28 04:09
所以就有点变成找极值的问题,只在极值那点交易,减少交易次数

就是如果一直递增就不在中间做交易么。。。
回复 支持 反对

使用道具 举报

我的人缘0
searim 发表于 2016-2-28 06:26:51 | 显示全部楼层
  此人很可信:
 
0% (暂未有人投票) 【我投】
  此人瞎逼逼:
 
0% (暂未有人投票) 【我投】
一亩三分地严打"顶""好贴""收藏了"之类的垃圾回复帖!被警告三次,系统会自动封杀ID!

想支持楼主,请点击帖子下方的"好苗""分享""收藏"键,酌情给楼主加大米(系统不扣你自己的分)。
. From 1point 3acres bbs积分不够看不了帖子,请参考论坛导航里的"帮助","新手提纲"里有攒积分指南
回复 支持 反对

使用道具 举报

我的人缘0
searim 发表于 2016-2-28 06:47:47 | 显示全部楼层
  此人很可信:
 
0% (暂未有人投票) 【我投】
  此人瞎逼逼:
 
0% (暂未有人投票) 【我投】
[1.2 1.3 1.1 1.6]这个test case过不了是因为遍历到 i=3时候因为还是升序被continue没有计算最后一次交易的利润
回复 支持 反对

使用道具 举报

我的人缘0
 楼主| eliblack 发表于 2016-2-28 06:56:08 | 显示全部楼层
  此人很可信:
 
0% (暂未有人投票) 【我投】
  此人瞎逼逼:
 
0% (暂未有人投票) 【我投】
searim 发表于 2016-2-28 06:47
[1.2 1.3 1.1 1.6]这个test case过不了是因为遍历到 i=3时候因为还是升序被continue没有计算最后一次交易的 ...

恩恩,我这个代码是没有考虑到这个情况,我不大记得我当时有没有考虑这个情况,有点久远了,但是当时他给的是[1.2 1.3 1.1 1.6 1.3 1.1]这种好像,然后我们争论点就很奇怪,他说我不需要用min,最后看了看又觉得只需要把cost改成两倍就好。。然后就稀里糊涂的结束了
Mobile Apps Category (English)728x90
回复 支持 反对

使用道具 举报

我的人缘0
e6175423 发表于 2016-2-28 11:41:56 | 显示全部楼层
  此人很可信:
 
0% (暂未有人投票) 【我投】
  此人瞎逼逼:
 
0% (暂未有人投票) 【我投】
eliblack 发表于 2016-2-28 03:13
同学。。。仔细看帖啊,有cost啊。。“如果这个按照leetcode原题无限次交易的思想,那么是要在1.2买,1.3 ...
-google 1point3acres
谢谢楼主!!不过我觉得您的答案不对哈。考虑case [1, 1.11, 1.1, 1.5],cost = 0.01,这个时候按照您的答案需要交易两次:profit=0.11+0.4-0.2*2=0.11,但正确答案应该是只交易一次:profit = 0.5-0.2*1 = 0.3,  所以面官的提示是有道理的~
回复 支持 反对

使用道具 举报

我的人缘0
 楼主| eliblack 发表于 2016-2-28 16:03:57 | 显示全部楼层
  此人很可信:
 
0% (暂未有人投票) 【我投】
  此人瞎逼逼:
 
0% (暂未有人投票) 【我投】
e6175423 发表于 2016-2-28 11:41
谢谢楼主!!不过我觉得您的答案不对哈。考虑case [1, 1.11, 1.1, 1.5],cost = 0.01,这个时候按照您的答 ...

我代码确实不够完全。。只是个粗略的版本,但是你这个计算有点问题啊。。cost是0.01,你为什么是0.2*2了?cost不同。要不要买入确实是有影响的。。按我的应该是0.11+0.4 - 2*0.01 = 0.49
回复 支持 反对

使用道具 举报

我的人缘0
e6175423 发表于 2016-2-28 16:25:22 | 显示全部楼层
  此人很可信:
 
0% (暂未有人投票) 【我投】
  此人瞎逼逼:
 
0% (暂未有人投票) 【我投】
恩恩,对~我太粗心啦。但是按照面试官的意思一次交易是2*cost,所以你的是0.47,另一种是0.48。所以答案不对~
回复 支持 反对

使用道具 举报

我的人缘0
 楼主| eliblack 发表于 2016-2-28 16:31:33 | 显示全部楼层
  此人很可信:
 
0% (暂未有人投票) 【我投】
  此人瞎逼逼:
 
0% (暂未有人投票) 【我投】
e6175423 发表于 2016-2-28 16:25
恩恩,对~我太粗心啦。但是按照面试官的意思一次交易是2*cost,所以你的是0.47,另一种是0.48。所以答案不 ...

所以cost不同,结果不一样么。。你有什么好的想法能bug free么?
回复 支持 反对

使用道具 举报

我的人缘0
e6175423 发表于 2016-2-28 22:32:27 | 显示全部楼层
  此人很可信:
 
0% (暂未有人投票) 【我投】
  此人瞎逼逼:
 
0% (暂未有人投票) 【我投】
下面是我根据自己的理解写的代码,测了一些case没问题。欢迎指点~~
  1. template <typename T>. visit 1point3acres for more.
  2. T solution(vector<T>& prices, const T& cost)
  3. {
  4.   T tmin = prices[0];
  5.   T profit = 0;
  6.   size_t n = prices.size();
  7.   for(int i = 1;i <= n; ++i)
  8.   {
  9.     if(i < n && prices[i] > prices[i-1])
  10.       profit+=(prices[i] - prices[i-1]);
  11.     else
  12.     {. Waral 博客有更多文章,
  13.       if (i == n) {
  14.         profit -= min(prices[i-1] - tmin, 2*cost);
  15.       } else{
  16.         if (prices[i-1] - prices[i]> 2*cost)
  17.           tmin = prices[i];
  18.         profit -= min(prices[i-1] - prices[i], 2*cost);. 一亩-三分-地,独家发布
  19.       }
  20.     }
  21.   }-google 1point3acres
  22.   return profit;
  23. }
复制代码
  1. int main() {.留学论坛-一亩-三分地
  2. // vector<double> prices({1.2, 1.3, 1.6, 1.1, 1.2});
  3. // vector<double> prices({1.0, 1.11, 1.0, 1.2, 1.5});. 围观我们@1point 3 acres
  4.   vector<double> prices({1.0, 1.11, 1.3, 1.2, 1.5});. from: 1point3acres
  5.   cout<<solution(prices, 0.01)<<endl;
  6.   return 0;
  7. }
复制代码

回复 支持 反对

使用道具 举报

我的人缘0
table 发表于 2016-3-2 05:46:29 | 显示全部楼层
  此人很可信:
 
0% (暂未有人投票) 【我投】
  此人瞎逼逼:
 
0% (暂未有人投票) 【我投】
e6175423 发表于 2016-2-28 22:32
下面是我根据自己的理解写的代码,测了一些case没问题。欢迎指点~~

同学,你的这个还是有问题的,如果test case是vector<double> prices({1.2, 1.3, 1.6, 1.5, 1.2}); 你的输出是0.36,实际应该是0.38
代码其实稍微修改下楼主的就好了,像这样:
double stock_cost(vector<double>& prices, const double& cost) {
        double min = prices[0];
        double profit = 0;
        for(int i=1;i<=prices.size();++i)
        {
            if(i<prices.size()&&prices>prices[i-1])
                continue;
            else
            {
                if(prices[i-1]-min>2*cost)
                    profit += prices[i-1]-min-2*cost;
                min = prices;
            }
        }
    return profit;

    }

回复 支持 反对

使用道具 举报

我的人缘0
totolin 发表于 2016-3-27 23:53:54 | 显示全部楼层
  此人很可信:
 
0% (暂未有人投票) 【我投】
  此人瞎逼逼:
 
0% (暂未有人投票) 【我投】
楼主这题有点类似Best Time to Buy and Sell Stock IV的简单版, 附上我的python 答案:
. 围观我们@1point 3 acres
  1. def maxprofit(prices, cost):
  2.     profit = 0
  3.     maxtmp = profit - prices[0]
  4.     for i in range(1, len(prices)):. visit 1point3acres for more.
  5.         profit = max(profit, prices[i] - 2*cost + maxtmp)
  6.         maxtmp = max(maxtmp, profit - prices[i])
  7.     return profit
复制代码
回复 支持 反对

使用道具 举报

我的人缘0
Stephenlz 发表于 2018-3-16 11:06:33 | 显示全部楼层
  此人很可信:
 
0% (暂未有人投票) 【我投】
  此人瞎逼逼:
 
0% (暂未有人投票) 【我投】
这道题应该是buy and sell stock with cooldown 的变形, 代码如下

public double buyAndSellStock(double[] prices) {
        if (prices.length <= 1) return 0;

        double[] sell = new double[prices.length];
        double[] buy = new double[prices.length];. more info on 1point3acres
.1point3acres网
        sell[0] = 0;
        sell[1] = Math.max(prices[1] - prices[0] - 0.02, 0);

        buy[0] = -prices[0];
        buy[1] = Math.max(-prices[0], -prices[1]);

        for (int i = 2; i < prices.length; i++) {
            buy[i] = Math.max(sell[i - 1] - prices[i], buy[i - 1]); 来源一亩.三分地论坛.
            sell[i] = Math.max(buy[i - 1] + prices[i] - 0.02, sell[i - 1]);
        }
        return sell[prices.length - 1];
    }
如果看不懂代码请去看 利口三零九
回复 支持 反对

使用道具 举报

游客
请先登录

本版积分规则

提醒:发帖可以选择内容隐藏,部分板块支持匿名发帖。请认真读完以下全部说明:

■隐藏内容方法: [hide=200]你想要隐藏的内容比如面经[/hide]
■意思是:用户积分低于200则看不到被隐藏的内容
■可以自行设置积分值,不建议太高(200以上太多人看不到),也不建议太低(那就没必要隐藏了)
■建议只隐藏关键内容,比如具体的面试题目、涉及隐私的信息,大部分内容没必要隐藏。
■微信/QQ/电子邮件等,为防止将来被骚扰甚至人肉,以论坛私信方式发给对方最安全。
■匿名发帖的板块和方法:http://www.1point3acres.com/bbs/thread-405991-1-1.html

关闭

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

手机版|小黑屋|一亩三分地论坛声明

custom counter

GMT+8, 2018-5-28 04:09

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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