由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - Linked电面分享,挺好的题 应该已挂
相关主题
4sum o(n^2)超时leetcode 上的 two sum
3sum on LeetCode OJtwoSum
分享面试题leetcode 的two sum
多线程算sparse matrix connected components怎么做?问个fb onsite题目
LeetCode 的 4 sum 问题 如何用hash table做呢?Second round phone interview with eBay
问个Java的HashSet.contains的问题一道电面题,分享下, 这个题应该用哪几个data structure?
求点评:电话面试(今天第二天没有消息回复,感觉可能挂了)leetcode 129
sleetcode中的online judge都报runtime error, 用本地编译器执行一些例子都okword ladder ii 谁给个大oj不超时的?
相关话题的讨论汇总
话题: integer话题: input话题: val话题: test话题: int
进入JobHunting版参与讨论
1 (共1页)
M**********g
发帖数: 59
1
面试的是一个 国人phd。
1.pow(double a, int b)没什么说的,注意overflow就行
2.实现2sum
interface TwoSum{
//存储用户输入的数
void store(int input){
}
//判断是否有两个数的和是val
boolean test(int val){
}
}
要求输入有重复,首先实现test的复杂度O(n) store的复杂度常数(用hashmap)
然后实现store的复杂度是o(n),test的复杂度是常数(用hashset)
最后考虑并发问题,两个方法同是被调用的时候(互斥锁)
很好的面试题,考察的挺全面,实际中也会碰到这样的问题,给大家分享一下。因为多
线程编程不是很了解,估计已挂。面试的时候又紧张。
n******n
发帖数: 12088
2
hash map和set不都是hash?test怎么可能是常数?存所有的和?那样存储平方。

【在 M**********g 的大作中提到】
: 面试的是一个 国人phd。
: 1.pow(double a, int b)没什么说的,注意overflow就行
: 2.实现2sum
: interface TwoSum{
: //存储用户输入的数
: void store(int input){
: }
: //判断是否有两个数的和是val
: boolean test(int val){
: }

c*******e
发帖数: 621
3
感觉你没问题的
写了3道题呢 最后一个小follow-up而已
y*****e
发帖数: 712
4
谢谢lz分享,祝拿到onsite。
第一题power有什么trick吗?和leetcode应该是一样的(正负指数,奇偶指数),
overflow的话因为return type是double, 还需要特别考虑吗?
第二题多线程怎么答呢?用synchronized行吗?

【在 M**********g 的大作中提到】
: 面试的是一个 国人phd。
: 1.pow(double a, int b)没什么说的,注意overflow就行
: 2.实现2sum
: interface TwoSum{
: //存储用户输入的数
: void store(int input){
: }
: //判断是否有两个数的和是val
: boolean test(int val){
: }

c******n
发帖数: 4965
5
作为店面 难度正好

【在 M**********g 的大作中提到】
: 面试的是一个 国人phd。
: 1.pow(double a, int b)没什么说的,注意overflow就行
: 2.实现2sum
: interface TwoSum{
: //存储用户输入的数
: void store(int input){
: }
: //判断是否有两个数的和是val
: boolean test(int val){
: }

M**********g
发帖数: 59
6
答得时候磕磕绊绊,也想了不少时间

【在 c*******e 的大作中提到】
: 感觉你没问题的
: 写了3道题呢 最后一个小follow-up而已

M**********g
发帖数: 59
7
第一题就是 负数变证书的时候overflow 因为最小负数变正后比最大正数大1
synchronized两个方法,然后用wait和notify()控制

【在 y*****e 的大作中提到】
: 谢谢lz分享,祝拿到onsite。
: 第一题power有什么trick吗?和leetcode应该是一样的(正负指数,奇偶指数),
: overflow的话因为return type是double, 还需要特别考虑吗?
: 第二题多线程怎么答呢?用synchronized行吗?

M**********g
发帖数: 59
8
maintain一个arraylist还有一个hashset
每次有input就先遍历arraylist,每个数和输入书求和,存到hashset里
再把数存到arraylist里

【在 n******n 的大作中提到】
: hash map和set不都是hash?test怎么可能是常数?存所有的和?那样存储平方。
M**********g
发帖数: 59
9
maintain一个arraylist和hashset
对于每个输入的数,遍历arraylist 每个数和输入算和,加到hashset里,最后把输入
的数加到arraylist里

【在 n******n 的大作中提到】
: hash map和set不都是hash?test怎么可能是常数?存所有的和?那样存储平方。
y*****e
发帖数: 712
10
好滴好滴明白了

【在 M**********g 的大作中提到】
: 第一题就是 负数变证书的时候overflow 因为最小负数变正后比最大正数大1
: synchronized两个方法,然后用wait和notify()控制

相关主题
问个Java的HashSet.contains的问题leetcode 上的 two sum
求点评:电话面试(今天第二天没有消息回复,感觉可能挂了)twoSum
sleetcode中的online judge都报runtime error, 用本地编译器执行一些例子都okleetcode 的two sum
进入JobHunting版参与讨论
y*****e
发帖数: 712
11
lz为啥你就一个面试官哪,我是两个耶。。。。估计有一个是shadow。。。
M**********g
发帖数: 59
12
是电面有两个么?
好奇怪啊,没碰到过两个的、、、、

【在 y*****e 的大作中提到】
: lz为啥你就一个面试官哪,我是两个耶。。。。估计有一个是shadow。。。
y*****e
发帖数: 712
13
对啊店面两个,一个人比较好啊,两个容易紧张。。。

【在 M**********g 的大作中提到】
: 是电面有两个么?
: 好奇怪啊,没碰到过两个的、、、、

c******n
发帖数: 4965
14
后面用read write lock 更容易些, 你用notify 基本就是实现read lock 和write
lock

【在 M**********g 的大作中提到】
: 第一题就是 负数变证书的时候overflow 因为最小负数变正后比最大正数大1
: synchronized两个方法,然后用wait和notify()控制

m******3
发帖数: 346
15
请问你怎么解决这个问题的最小负数变正后比最大正数大1,是内部用long type么?

【在 M**********g 的大作中提到】
: 第一题就是 负数变证书的时候overflow 因为最小负数变正后比最大正数大1
: synchronized两个方法,然后用wait和notify()控制

a********5
发帖数: 1631
16
一般只有一个的原因是:有一个临时放鸽子了,问第二个说你能自己HOLD住不?不能我
就找个人替我
第二个说:没问题,我自己来就行。
所以就只有一个了。

【在 y*****e 的大作中提到】
: 对啊店面两个,一个人比较好啊,两个容易紧张。。。
y*****e
发帖数: 712
17
哈哈太有画面感了。。。

【在 a********5 的大作中提到】
: 一般只有一个的原因是:有一个临时放鸽子了,问第二个说你能自己HOLD住不?不能我
: 就找个人替我
: 第二个说:没问题,我自己来就行。
: 所以就只有一个了。

s***m
发帖数: 336
18
感谢分享。祝LZ好运!
j********l
发帖数: 325
19
不太懂呀,麻烦写一个multi-threading 吧

【在 M**********g 的大作中提到】
: maintain一个arraylist和hashset
: 对于每个输入的数,遍历arraylist 每个数和输入算和,加到hashset里,最后把输入
: 的数加到arraylist里

x********u
发帖数: 1150
20
多线程不容易搞.
相关主题
问个fb onsite题目leetcode 129
Second round phone interview with eBayword ladder ii 谁给个大oj不超时的?
一道电面题,分享下, 这个题应该用哪几个data structure?杯具!越改越差
进入JobHunting版参与讨论
b******i
发帖数: 914
21
谢了,这个overflow好难想到,感觉有点刁了
是不是所有这种code里面int要求负数的都要考虑overflow。。。

【在 M**********g 的大作中提到】
: 第一题就是 负数变证书的时候overflow 因为最小负数变正后比最大正数大1
: synchronized两个方法,然后用wait和notify()控制

M**********g
发帖数: 59
22
就单独处理一下最小负数就行了,long也行

【在 m******3 的大作中提到】
: 请问你怎么解决这个问题的最小负数变正后比最大正数大1,是内部用long type么?
M**********g
发帖数: 59
23
其实再store的方法加个synchronized 就可以了,
每当有线程调用store方法的时候,这个对象就上锁了,其他线程就不能访问了。
下面是原题,和我写的实现
public interface TwoSum {
/**
* Stores @param input in an internal data structure.
*/
void store(int input);

/**
* Returns true if there is any pair of numbers in the internal data
structure which
* have sum @param val, and false otherwise.
* For example, if the numbers 1, -2, 3, and 6 had been stored,
* the method should return true for 4, -1, and 9, but false for 10, 5,
and 0
*/
boolean test(int val);
}
public class TwoSumCalculator implements TwoSum {
/**
* Stores @param input in an internal data structure.
*/
ArrayList inputs = new ArrayList();
HashTable sums = new HashTable();
synchronized void store(int input){
for(int i:inputs)
sums.add(i+input);
inputs.add(input);
}
/**
* Returns true if there is any pair of numbers in the internal data
structure which
* have sum @param val, and false otherwise.
* For example, if the numbers 1,0, -2,1, 3,2, and 6; 1 had been stored,
* the method should return true for 4, -1, and 9, but false for 10, 5,
and 0
*/
boolean test(int val){
return sums.contains(val);
}
}

【在 j********l 的大作中提到】
: 不太懂呀,麻烦写一个multi-threading 吧
M**********g
发帖数: 59
24
收到onsite邀请了,谢谢咯

【在 s***m 的大作中提到】
: 感谢分享。祝LZ好运!
M**********g
发帖数: 59
25
拿到onsite了,好幸运,你的面试怎么样了

【在 y*****e 的大作中提到】
: 谢谢lz分享,祝拿到onsite。
: 第一题power有什么trick吗?和leetcode应该是一样的(正负指数,奇偶指数),
: overflow的话因为return type是double, 还需要特别考虑吗?
: 第二题多线程怎么答呢?用synchronized行吗?

M**********g
发帖数: 59
26
是啊 其实你做leetcode就会有这样的test case,国人大哥应该也是做过,所以会问吧

【在 b******i 的大作中提到】
: 谢了,这个overflow好难想到,感觉有点刁了
: 是不是所有这种code里面int要求负数的都要考虑overflow。。。

M**********g
发帖数: 59
27
收到版主送来的20伪币,好开心啊,以后也有分享的动力了。
等onsite回来就分享onsite的题
y*****e
发帖数: 712
28
多谢分享lz,你这个版本是每加一个数进去,就把所有的sum都放到hashset里面,test
就是O(1),但store是o(n),你这么写是不是因为面试官说了test会被频繁调用之类的话
呢?
因为我觉得那个list不需要用啊,直接一个hashmap,key是进来的数字,val是出现的
次数。这样写的话test是o(n),store是o(1),所有可不可以说,如果store需要频
繁调用的话,就只用hashmap, test频繁调用的话,就得用list + hashset,每加入一
个数计算出所有可能的和?
下面这个是我写的只用hashmap的版本。。。还请lz指教。
public class twoo implements TwoSum {
private Map map;
public twoo(){
map = new HashMap();
}
public void store(int input){
if(map.containsKey(input)){
map.put(input, map.get(input) + 1);
}
else{
map.put(input, 1);
}
}
public boolean test(int val){
for(int key : map.keySet()){
int target = val - key;
if(val - key == target && map.get(key) > 1){
return true;
}
if(map.containsKey(target)){
return true;
}
}
return false;
}

【在 M**********g 的大作中提到】
: 其实再store的方法加个synchronized 就可以了,
: 每当有线程调用store方法的时候,这个对象就上锁了,其他线程就不能访问了。
: 下面是原题,和我写的实现
: public interface TwoSum {
: /**
: * Stores @param input in an internal data structure.
: */
: void store(int input);
:
: /**

y*****e
发帖数: 712
29
恭喜lz!!我还在店面的初级阶段那。。。lz是不是加州local的?

【在 M**********g 的大作中提到】
: 拿到onsite了,好幸运,你的面试怎么样了
b**********5
发帖数: 7881
30
我靠。。我被问到好几次multithreaded, 从来不敢用synchronized, always trying
to be cute with ReentrantLock, or ConcurrentHashMap, or
ReentrantReadWriteLock...
然后写写写写, 就觉得需要google来看那些class的javadoc。。。

【在 M**********g 的大作中提到】
: 其实再store的方法加个synchronized 就可以了,
: 每当有线程调用store方法的时候,这个对象就上锁了,其他线程就不能访问了。
: 下面是原题,和我写的实现
: public interface TwoSum {
: /**
: * Stores @param input in an internal data structure.
: */
: void store(int input);
:
: /**

相关主题
leetcode的3sum的运行时间问题3sum on LeetCode OJ
combination sum II分享面试题
4sum o(n^2)超时多线程算sparse matrix connected components怎么做?
进入JobHunting版参与讨论
G*****m
发帖数: 5395
31
lz应该过了吧:)

【在 M**********g 的大作中提到】
: 面试的是一个 国人phd。
: 1.pow(double a, int b)没什么说的,注意overflow就行
: 2.实现2sum
: interface TwoSum{
: //存储用户输入的数
: void store(int input){
: }
: //判断是否有两个数的和是val
: boolean test(int val){
: }

M**********g
发帖数: 59
32
对啊,两个都写了,一个就是要经常调用test函数,所以保证test是constant 的
running time

test

【在 y*****e 的大作中提到】
: 多谢分享lz,你这个版本是每加一个数进去,就把所有的sum都放到hashset里面,test
: 就是O(1),但store是o(n),你这么写是不是因为面试官说了test会被频繁调用之类的话
: 呢?
: 因为我觉得那个list不需要用啊,直接一个hashmap,key是进来的数字,val是出现的
: 次数。这样写的话test是o(n),store是o(1),所有可不可以说,如果store需要频
: 繁调用的话,就只用hashmap, test频繁调用的话,就得用list + hashset,每加入一
: 个数计算出所有可能的和?
: 下面这个是我写的只用hashmap的版本。。。还请lz指教。
: public class twoo implements TwoSum {
: private Map map;

M**********g
发帖数: 59
33
hashmap的话就跟你写的一样

test

【在 y*****e 的大作中提到】
: 多谢分享lz,你这个版本是每加一个数进去,就把所有的sum都放到hashset里面,test
: 就是O(1),但store是o(n),你这么写是不是因为面试官说了test会被频繁调用之类的话
: 呢?
: 因为我觉得那个list不需要用啊,直接一个hashmap,key是进来的数字,val是出现的
: 次数。这样写的话test是o(n),store是o(1),所有可不可以说,如果store需要频
: 繁调用的话,就只用hashmap, test频繁调用的话,就得用list + hashset,每加入一
: 个数计算出所有可能的和?
: 下面这个是我写的只用hashmap的版本。。。还请lz指教。
: public class twoo implements TwoSum {
: private Map map;

M**********g
发帖数: 59
34
是啊,人在三藩

【在 y*****e 的大作中提到】
: 恭喜lz!!我还在店面的初级阶段那。。。lz是不是加州local的?
M**********g
发帖数: 59
35
是啊,我也是刚开始看多线程,synchronized直接用在方法上,效率是挺低的,我那么
写的也不对了
我觉得学习多线程,多看几个经典实例比较好,明白了原理,就很容易理解那些类了

trying

【在 b**********5 的大作中提到】
: 我靠。。我被问到好几次multithreaded, 从来不敢用synchronized, always trying
: to be cute with ReentrantLock, or ConcurrentHashMap, or
: ReentrantReadWriteLock...
: 然后写写写写, 就觉得需要google来看那些class的javadoc。。。

h*******0
发帖数: 270
36
楼主,为什么synchronized作用在方法上会效率低? 正常的多线程用该用什么?

【在 M**********g 的大作中提到】
: 是啊,我也是刚开始看多线程,synchronized直接用在方法上,效率是挺低的,我那么
: 写的也不对了
: 我觉得学习多线程,多看几个经典实例比较好,明白了原理,就很容易理解那些类了
:
: trying

A*******e
发帖数: 2419
37
结果是浮点数,怎么还会有最小比最大差1的问题?

【在 M**********g 的大作中提到】
: 第一题就是 负数变证书的时候overflow 因为最小负数变正后比最大正数大1
: synchronized两个方法,然后用wait和notify()控制

o****n
发帖数: 937
38
公司名字都没拼对。。。估计已挂
m*********t
发帖数: 527
39
int 负数不是问题。。。。负数直接除 2 就行了。。。
主要得考虑 double 的 overflow 和 underflow 这种问题,以及 NaN InF 还有 pow(0
, 0) 这种 exception
http://opensource.apple.com/source/Libm/Libm-315/Source/Intel/e

【在 b******i 的大作中提到】
: 谢了,这个overflow好难想到,感觉有点刁了
: 是不是所有这种code里面int要求负数的都要考虑overflow。。。

h****3
发帖数: 89
40
楼主overflow 怎么处理?返回0 吗?
如果n给的是 1<<31 ?
相关主题
多线程算sparse matrix connected components怎么做?求点评:电话面试(今天第二天没有消息回复,感觉可能挂了)
LeetCode 的 4 sum 问题 如何用hash table做呢?sleetcode中的online judge都报runtime error, 用本地编译器执行一些例子都ok
问个Java的HashSet.contains的问题leetcode 上的 two sum
进入JobHunting版参与讨论
M**********g
发帖数: 59
41
if(n==Integer.MIN_VALUE)
return 1/(x*pow(x,Integer.MAX_VALUE));
原来是if(n<0)
return 1/pow(x,-n);

【在 h****3 的大作中提到】
: 楼主overflow 怎么处理?返回0 吗?
: 如果n给的是 1<<31 ?

M**********g
发帖数: 59
42
因为synchronized作用在方法上,就把这个对象锁定了,所有其他synchronized的方法
就不可以访问了,如果不同进程想同时调用test方法就要等待了

【在 h*******0 的大作中提到】
: 楼主,为什么synchronized作用在方法上会效率低? 正常的多线程用该用什么?
M**********g
发帖数: 59
43
因为我写的是
pow(x,n){
if(n<0)
return 1/pow(x,-n);
}
所以他才问我这里的最小值溢出问题。。。。
整个函数确实是应该考虑double的溢出

(0

【在 m*********t 的大作中提到】
: int 负数不是问题。。。。负数直接除 2 就行了。。。
: 主要得考虑 double 的 overflow 和 underflow 这种问题,以及 NaN InF 还有 pow(0
: , 0) 这种 exception
: http://opensource.apple.com/source/Libm/Libm-315/Source/Intel/e

1 (共1页)
进入JobHunting版参与讨论
相关主题
word ladder ii 谁给个大oj不超时的?LeetCode 的 4 sum 问题 如何用hash table做呢?
杯具!越改越差问个Java的HashSet.contains的问题
leetcode的3sum的运行时间问题求点评:电话面试(今天第二天没有消息回复,感觉可能挂了)
combination sum IIsleetcode中的online judge都报runtime error, 用本地编译器执行一些例子都ok
4sum o(n^2)超时leetcode 上的 two sum
3sum on LeetCode OJtwoSum
分享面试题leetcode 的two sum
多线程算sparse matrix connected components怎么做?问个fb onsite题目
相关话题的讨论汇总
话题: integer话题: input话题: val话题: test话题: int