推荐:数据科学课程和书籍清单以及培训讲座


一亩三分地论坛

 找回密码
 获取更多干活,快来注册

一亩三分地官方iOS手机应用下载
查看: 1412|回复: 7
收起左侧

T 家 coding challenge

[复制链接] |试试Instant~ |关注本帖
幸福的小小杏儿 发表于 2015-11-8 13:47:28 | 显示全部楼层 |阅读模式

2015(10-12月) 码农类 硕士 全职@Twitter - 校园招聘会 - 在线笔试 |Otherfresh grad应届毕业生

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

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

x
Twitter OA, 两道题六十分钟。
第一题: http://www.cut-the-knot.org/proofs/LinesDividePlane.shtml, 要考虑输入很大的情况,计算结果大于10^9的直接输出最后9个digits
第二题: given N integers d[0], d[1],......d[N-1] 比如 {1 3 2 3 4 1}.   输出两个bit string, 第一个从左往右看,d是否跟前面digits有重复, 所以答案是 000101。. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
第一个从右往左看,d是否跟后面digits有重复, 所以答案是 110000
就输出这两个bit string。 brute force,用了set做。


求RP啦~最近好低迷啊~
祝大家都拿到理想offer!
. visit 1point3acres.com for more.

补充内容 (2015-11-8 13:48):
Typo:第二个从右往左看*

评分

3

查看全部评分

BrilliantBean 发表于 2016-3-23 09:06:22 | 显示全部楼层
关注一亩三分地公众号:
Warald_一亩三分地
求问大神 第一题你是怎么做的啊 直接套用公式吗
回复 支持 反对

使用道具 举报

海盗包子 发表于 2016-3-23 10:25:20 | 显示全部楼层
关注一亩三分地微博:
Warald
BrilliantBean 发表于 2016-3-23 09:06. 1point 3acres 璁哄潧
求问大神 第一题你是怎么做的啊 直接套用公式吗

第一题可以直接用公式吧,个人觉得可以运算时拆开防止数值过大,例如
Ln=(n^2+n+2)/2
化成Ln=n*n/2 + n/2 + 1
这样运算过程超出10^9也可以只保留后9位
回复 支持 反对

使用道具 举报

BrilliantBean 发表于 2016-3-24 04:21:49 | 显示全部楼层
海盗包子 发表于 2016-3-23 10:25
第一题可以直接用公式吧,个人觉得可以运算时拆开防止数值过大,例如.1point3acres缃
Ln=(n^2+n+2)/2
化成Ln=n*n/2 + n ...

我的想法是用leetcode上面的multiply string的方法处理,这样的话不论是多大的数都不会超出边界的,不知道是否可行呢?
回复 支持 反对

使用道具 举报

BrilliantBean 发表于 2016-3-24 04:23:13 | 显示全部楼层
海盗包子 发表于 2016-3-23 10:25
第一题可以直接用公式吧,个人觉得可以运算时拆开防止数值过大,例如
Ln=(n^2+n+2)/2
化成Ln=n*n/2 + n ...
. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
运算过程超过10^9的话 如何保留后九位呢
回复 支持 反对

使用道具 举报

海盗包子 发表于 2016-3-24 06:18:24 | 显示全部楼层
BrilliantBean 发表于 2016-3-24 04:23
运算过程超过10^9的话 如何保留后九位呢

multiply string这个方法我确实没有想到,但我感觉如果考点不在这里可能会超时啊,用long来存储应该够用了,输入应该就是int了,或者先把输入n mod 10^9.
回复 支持 反对

使用道具 举报

BrilliantBean 发表于 2016-3-24 06:38:04 | 显示全部楼层
海盗包子 发表于 2016-3-24 06:18
multiply string这个方法我确实没有想到,但我感觉如果考点不在这里可能会超时啊,用long来存储应该够用 ...

是的 因为我昨天考虑到 int可以是Integer.MAX_VALUE, 而超出边界的部分就是n^2的那部分,遂想到用multiply string的方法来解,反正在ide上是跑出结果了,既然考点时long的话 那就放心啦,
回复 支持 反对

使用道具 举报

sealove999 发表于 2016-3-27 10:01:49 | 显示全部楼层
第一题
  1. public class Solution {
  2.   static int LinesDividePlane(int a) {
  3.     long b = a;
  4.     long c = (b * b + b + 2) / 2;. 鍥磋鎴戜滑@1point 3 acres
  5.     return (int) (c % 1000000000);
  6.   }

  7.   public static void main(String[] args) {
  8.     System.out.println(LinesDividePlane(45000));
  9.   }
  10. }
复制代码
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

custom counter

GMT+8, 2017-7-24 19:05

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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