由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - linkedin电面题
相关主题
问一道L家的题做一下common prefix in sorted string arrays
一道字符串题目上一道我以前喜欢出的题目吧
Google Phone Interview好象是google的高频题目
问下Linkedin的一道电面谷歌面经
Amazon面试问题(Convert word1 to word2)?leetcode的run time error
edit distance vs. word ladder最新L家面经
Microsoft screening programming problem开始刷leetcode,第一道题一直有run time error
4sum的那道题问一道FB面试题
相关话题的讨论汇总
话题: dist话题: word1话题: word2话题: int话题: wordlist
进入JobHunting版参与讨论
1 (共1页)
Z**********4
发帖数: 528
1
已挂,发了攒人品。
有一个array ["this", "is", "a", "is", "fox", "happy"]
需要返回两个单词的最近距离(用index计算)。
int dist(string word1, string word2)
比如dist("fox", "happy") = 1
dist("is", "fox") = 1 注意“is”是有重复的。
每个单词都是有可能重复的。
l*****a
发帖数: 14598
2
就一道题?你怎么做的

【在 Z**********4 的大作中提到】
: 已挂,发了攒人品。
: 有一个array ["this", "is", "a", "is", "fox", "happy"]
: 需要返回两个单词的最近距离(用index计算)。
: int dist(string word1, string word2)
: 比如dist("fox", "happy") = 1
: dist("is", "fox") = 1 注意“is”是有重复的。
: 每个单词都是有可能重复的。

p*******e
发帖数: 933
3
如果面试前在这个版做过功课,这个题太高频了啊
怎么就挂了呢

【在 Z**********4 的大作中提到】
: 已挂,发了攒人品。
: 有一个array ["this", "is", "a", "is", "fox", "happy"]
: 需要返回两个单词的最近距离(用index计算)。
: int dist(string word1, string word2)
: 比如dist("fox", "happy") = 1
: dist("is", "fox") = 1 注意“is”是有重复的。
: 每个单词都是有可能重复的。

X*4
发帖数: 101
4
求最优解

【在 p*******e 的大作中提到】
: 如果面试前在这个版做过功课,这个题太高频了啊
: 怎么就挂了呢

a***n
发帖数: 623
5
这题还有扩展,如果你连扩展都没做到,那确实要好好做功课。
扩展是,求一个最小区间,囊括了一个set of words。
这个问题在实际中也有很直接的应用:
比如用户丢了一个query里面有N个term,搜索引擎返回了一堆snippets,如果展现最简
洁的snippets且包括了所有term?
倒排索引应该能想到。
扩展问题解法就是贪心,不需要DP。
c*******r
发帖数: 610
6
auyin 说得是对的,其实就是inverted index的简单版本吧。
基本思想应该是:对每一个词,记录它的index (从小到大)。然后对于s1, s2,计算
索引
之间的最小值,就是两个词之间的最小距离了。
glassdoor上面原题
l*****a
发帖数: 14598
7
有必要记录那么多吗?
indexa=-1
indexb=-1
然后找到一个就更新相应index,算Math.min(indexa-indexb)不就可以了?

【在 c*******r 的大作中提到】
: auyin 说得是对的,其实就是inverted index的简单版本吧。
: 基本思想应该是:对每一个词,记录它的index (从小到大)。然后对于s1, s2,计算
: 索引
: 之间的最小值,就是两个词之间的最小距离了。
: glassdoor上面原题

g***j
发帖数: 1275
8
没明白,展开说说?

【在 l*****a 的大作中提到】
: 有必要记录那么多吗?
: indexa=-1
: indexb=-1
: 然后找到一个就更新相应index,算Math.min(indexa-indexb)不就可以了?

c*******r
发帖数: 610
9
你这个方法更好,不需要存储位置信息。

【在 l*****a 的大作中提到】
: 有必要记录那么多吗?
: indexa=-1
: indexb=-1
: 然后找到一个就更新相应index,算Math.min(indexa-indexb)不就可以了?

c*******r
发帖数: 610
10
伪代码:
//assume both words appear at least once in the input
int index1 = -1;
int index2 = -1;
int min_dist = INT_MIN;
for i = 0 to words.size()
if words[i]= word1
index1 = i;
if words[i] = word2
index2 = i;
if (index1 != -1 && index2 !=-1)
min_dist = min(min_dist, abs(index1 -index2);
return min_dist;
lolhaha大牛是这个意思么?

【在 g***j 的大作中提到】
: 没明白,展开说说?
相关主题
edit distance vs. word ladder做一下common prefix in sorted string arrays
Microsoft screening programming problem上一道我以前喜欢出的题目吧
4sum的那道题好象是google的高频题目
进入JobHunting版参与讨论
l*****a
发帖数: 14598
11
俺是菜鸟 :)
就这个意思,不知道是不是最优解

【在 c*******r 的大作中提到】
: 伪代码:
: //assume both words appear at least once in the input
: int index1 = -1;
: int index2 = -1;
: int min_dist = INT_MIN;
: for i = 0 to words.size()
: if words[i]= word1
: index1 = i;
: if words[i] = word2
: index2 = i;

Z**********4
发帖数: 528
12
就是用hash先存所有word可能出现的index序列
然后word1和word2的序列,希望找出其中具有最小绝对值的一对。
这一面试官要求O(n)的算法吧。。没想出来。

【在 l*****a 的大作中提到】
: 就一道题?你怎么做的
m******3
发帖数: 346
13
应该不用这么麻烦吧,两个变量,记录word1 和 word 2最近出现的位置,然后每次计
算当前的距离,如果这个距离小于当前已知的最小距离,就更新最小距离,O(n)扫一遍
就行

【在 Z**********4 的大作中提到】
: 就是用hash先存所有word可能出现的index序列
: 然后word1和word2的序列,希望找出其中具有最小绝对值的一对。
: 这一面试官要求O(n)的算法吧。。没想出来。

s********x
发帖数: 81
14
如果这个函数调用一次,我觉得一次扫描,不用hash最好。
如果调用多次,我觉得用构造hash更好。
i**********e
发帖数: 1145
15
当 word1 = word2 怎么办?

【在 c*******r 的大作中提到】
: 伪代码:
: //assume both words appear at least once in the input
: int index1 = -1;
: int index2 = -1;
: int min_dist = INT_MIN;
: for i = 0 to words.size()
: if words[i]= word1
: index1 = i;
: if words[i] = word2
: index2 = i;

g***j
发帖数: 1275
16
直接返回0?

【在 i**********e 的大作中提到】
: 当 word1 = word2 怎么办?
l*********8
发帖数: 4642
17
your code always returns INT_MIN

【在 c*******r 的大作中提到】
: 伪代码:
: //assume both words appear at least once in the input
: int index1 = -1;
: int index2 = -1;
: int min_dist = INT_MIN;
: for i = 0 to words.size()
: if words[i]= word1
: index1 = i;
: if words[i] = word2
: index2 = i;

l*********8
发帖数: 4642
18
word不在数组中呢?

【在 g***j 的大作中提到】
: 直接返回0?
h*******e
发帖数: 1377
19
这个set of words 满足什么条件阿。

【在 a***n 的大作中提到】
: 这题还有扩展,如果你连扩展都没做到,那确实要好好做功课。
: 扩展是,求一个最小区间,囊括了一个set of words。
: 这个问题在实际中也有很直接的应用:
: 比如用户丢了一个query里面有N个term,搜索引擎返回了一堆snippets,如果展现最简
: 洁的snippets且包括了所有term?
: 倒排索引应该能想到。
: 扩展问题解法就是贪心,不需要DP。

g***j
发帖数: 1275
20
为啥?

【在 l*********8 的大作中提到】
: your code always returns INT_MIN
相关主题
谷歌面经开始刷leetcode,第一道题一直有run time error
leetcode的run time error问一道FB面试题
最新L家面经google seti onsite
进入JobHunting版参与讨论
m*****k
发帖数: 731
21
o***g
发帖数: 2784
22
因为初始化min_dist = INT_MIN,应该初始化成最大整数

【在 g***j 的大作中提到】
: 为啥?
W*********y
发帖数: 481
23
typo了吧,应该是INT_MAX

【在 g***j 的大作中提到】
: 为啥?
h*********o
发帖数: 230
24
初始化 应该是 max

【在 g***j 的大作中提到】
: 为啥?
r*******k
发帖数: 1423
25
算出来,存到矩阵里

【在 c*******r 的大作中提到】
: 你这个方法更好,不需要存储位置信息。
m*********n
发帖数: 931
26
好题~ 不用hash应该就ok
y***n
发帖数: 1594
27
好像CC 150 也有这个题。
T*****u
发帖数: 7103
28
这个能先sort了list吗?
T*****u
发帖数: 7103
29
python初学者贴个python的
def dist(word1, word2):
wordlist = ['this','this','is']
l1,l2 = -1,-1
dist = len(wordlist)
for p in range(len(wordlist)):
if word1==wordlist[p]:
l1 = p
if word1==word2:
l1,l2 = l2,l1
elif word2 == wordlist[p]:
l2 = p
if l1*l2>-1:
if dist>abs(l2-l1):
dist = abs(l2-l1)
if dist==len(wordlist): return None
else: return dist
Z**********4
发帖数: 528
30
已挂,发了攒人品。
有一个array ["this", "is", "a", "is", "fox", "happy"]
需要返回两个单词的最近距离(用index计算)。
int dist(string word1, string word2)
比如dist("fox", "happy") = 1
dist("is", "fox") = 1 注意“is”是有重复的。
每个单词都是有可能重复的。
相关主题
LC的罗马转数字规则是什么?一道字符串题目
Given large text, find min cover distance of n words题目是什么意思啊?Google Phone Interview
问一道L家的题问下Linkedin的一道电面
进入JobHunting版参与讨论
l*****a
发帖数: 14598
31
就一道题?你怎么做的

【在 Z**********4 的大作中提到】
: 已挂,发了攒人品。
: 有一个array ["this", "is", "a", "is", "fox", "happy"]
: 需要返回两个单词的最近距离(用index计算)。
: int dist(string word1, string word2)
: 比如dist("fox", "happy") = 1
: dist("is", "fox") = 1 注意“is”是有重复的。
: 每个单词都是有可能重复的。

p*******e
发帖数: 933
32
如果面试前在这个版做过功课,这个题太高频了啊
怎么就挂了呢

【在 Z**********4 的大作中提到】
: 已挂,发了攒人品。
: 有一个array ["this", "is", "a", "is", "fox", "happy"]
: 需要返回两个单词的最近距离(用index计算)。
: int dist(string word1, string word2)
: 比如dist("fox", "happy") = 1
: dist("is", "fox") = 1 注意“is”是有重复的。
: 每个单词都是有可能重复的。

X*4
发帖数: 101
33
求最优解

【在 p*******e 的大作中提到】
: 如果面试前在这个版做过功课,这个题太高频了啊
: 怎么就挂了呢

a***n
发帖数: 623
34
这题还有扩展,如果你连扩展都没做到,那确实要好好做功课。
扩展是,求一个最小区间,囊括了一个set of words。
这个问题在实际中也有很直接的应用:
比如用户丢了一个query里面有N个term,搜索引擎返回了一堆snippets,如果展现最简
洁的snippets且包括了所有term?
倒排索引应该能想到。
扩展问题解法就是贪心,不需要DP。
c*******r
发帖数: 610
35
auyin 说得是对的,其实就是inverted index的简单版本吧。
基本思想应该是:对每一个词,记录它的index (从小到大)。然后对于s1, s2,计算
索引
之间的最小值,就是两个词之间的最小距离了。
glassdoor上面原题
l*****a
发帖数: 14598
36
有必要记录那么多吗?
indexa=-1
indexb=-1
然后找到一个就更新相应index,算Math.min(indexa-indexb)不就可以了?

【在 c*******r 的大作中提到】
: auyin 说得是对的,其实就是inverted index的简单版本吧。
: 基本思想应该是:对每一个词,记录它的index (从小到大)。然后对于s1, s2,计算
: 索引
: 之间的最小值,就是两个词之间的最小距离了。
: glassdoor上面原题

g***j
发帖数: 1275
37
没明白,展开说说?

【在 l*****a 的大作中提到】
: 有必要记录那么多吗?
: indexa=-1
: indexb=-1
: 然后找到一个就更新相应index,算Math.min(indexa-indexb)不就可以了?

c*******r
发帖数: 610
38
你这个方法更好,不需要存储位置信息。

【在 l*****a 的大作中提到】
: 有必要记录那么多吗?
: indexa=-1
: indexb=-1
: 然后找到一个就更新相应index,算Math.min(indexa-indexb)不就可以了?

c*******r
发帖数: 610
39
伪代码:
//assume both words appear at least once in the input
int index1 = -1;
int index2 = -1;
int min_dist = INT_MAX;
for i = 0 to words.size()
if words[i]= word1
index1 = i;
if words[i] = word2
index2 = i;
if (index1 != -1 && index2 !=-1)
min_dist = min(min_dist, abs(index1 -index2);
return min_dist;
lolhaha大牛是这个意思么?

【在 g***j 的大作中提到】
: 没明白,展开说说?
l*****a
发帖数: 14598
40
俺是菜鸟 :)
就这个意思,不知道是不是最优解

【在 c*******r 的大作中提到】
: 伪代码:
: //assume both words appear at least once in the input
: int index1 = -1;
: int index2 = -1;
: int min_dist = INT_MAX;
: for i = 0 to words.size()
: if words[i]= word1
: index1 = i;
: if words[i] = word2
: index2 = i;

相关主题
问下Linkedin的一道电面Microsoft screening programming problem
Amazon面试问题(Convert word1 to word2)?4sum的那道题
edit distance vs. word ladder做一下common prefix in sorted string arrays
进入JobHunting版参与讨论
Z**********4
发帖数: 528
41
就是用hash先存所有word可能出现的index序列
然后word1和word2的序列,希望找出其中具有最小绝对值的一对。
这一面试官要求O(n)的算法吧。。没想出来。

【在 l*****a 的大作中提到】
: 就一道题?你怎么做的
m******3
发帖数: 346
42
应该不用这么麻烦吧,两个变量,记录word1 和 word 2最近出现的位置,然后每次计
算当前的距离,如果这个距离小于当前已知的最小距离,就更新最小距离,O(n)扫一遍
就行

【在 Z**********4 的大作中提到】
: 就是用hash先存所有word可能出现的index序列
: 然后word1和word2的序列,希望找出其中具有最小绝对值的一对。
: 这一面试官要求O(n)的算法吧。。没想出来。

s********x
发帖数: 81
43
如果这个函数调用一次,我觉得一次扫描,不用hash最好。
如果调用多次,我觉得用构造hash更好。
i**********e
发帖数: 1145
44
当 word1 = word2 怎么办?

【在 c*******r 的大作中提到】
: 伪代码:
: //assume both words appear at least once in the input
: int index1 = -1;
: int index2 = -1;
: int min_dist = INT_MAX;
: for i = 0 to words.size()
: if words[i]= word1
: index1 = i;
: if words[i] = word2
: index2 = i;

g***j
发帖数: 1275
45
直接返回0?

【在 i**********e 的大作中提到】
: 当 word1 = word2 怎么办?
l*********8
发帖数: 4642
46
your code always returns INT_MIN

【在 c*******r 的大作中提到】
: 伪代码:
: //assume both words appear at least once in the input
: int index1 = -1;
: int index2 = -1;
: int min_dist = INT_MAX;
: for i = 0 to words.size()
: if words[i]= word1
: index1 = i;
: if words[i] = word2
: index2 = i;

l*********8
发帖数: 4642
47
word不在数组中呢?

【在 g***j 的大作中提到】
: 直接返回0?
h*******e
发帖数: 1377
48
这个set of words 满足什么条件阿。

【在 a***n 的大作中提到】
: 这题还有扩展,如果你连扩展都没做到,那确实要好好做功课。
: 扩展是,求一个最小区间,囊括了一个set of words。
: 这个问题在实际中也有很直接的应用:
: 比如用户丢了一个query里面有N个term,搜索引擎返回了一堆snippets,如果展现最简
: 洁的snippets且包括了所有term?
: 倒排索引应该能想到。
: 扩展问题解法就是贪心,不需要DP。

g***j
发帖数: 1275
49
为啥?

【在 l*********8 的大作中提到】
: your code always returns INT_MIN
m*****k
发帖数: 731
50
相关主题
上一道我以前喜欢出的题目吧leetcode的run time error
好象是google的高频题目最新L家面经
谷歌面经开始刷leetcode,第一道题一直有run time error
进入JobHunting版参与讨论
o***g
发帖数: 2784
51
因为初始化min_dist = INT_MIN,应该初始化成最大整数

【在 g***j 的大作中提到】
: 为啥?
W*********y
发帖数: 481
52
typo了吧,应该是INT_MAX

【在 g***j 的大作中提到】
: 为啥?
h*********o
发帖数: 230
53
初始化 应该是 max

【在 g***j 的大作中提到】
: 为啥?
r*******k
发帖数: 1423
54
算出来,存到矩阵里

【在 c*******r 的大作中提到】
: 你这个方法更好,不需要存储位置信息。
m*********n
发帖数: 931
55
好题~ 不用hash应该就ok
y***n
发帖数: 1594
56
好像CC 150 也有这个题。
T*****u
发帖数: 7103
57
这个能先sort了list吗?
T*****u
发帖数: 7103
58
python初学者贴个python的
def dist(word1, word2):
wordlist = ['this','this','is']
l1,l2 = -1,-1
dist = len(wordlist)
for p in range(len(wordlist)):
if word1==wordlist[p]:
l1 = p
if word1==word2:
l1,l2 = l2,l1
elif word2 == wordlist[p]:
l2 = p
if l1*l2>-1:
if dist>abs(l2-l1):
dist = abs(l2-l1)
if dist==len(wordlist): return None
else: return dist
f**********t
发帖数: 1001
59
#include "common.h"
class WordsDistance {
vector _array;
public:
WordsDistance(initializer_list l) : _array(l) {}
int dist(string word1, string word2) {
int res = INT_MAX;
size_t left = 0;
while (left < _array.size() && _array[left] != word1 && _array[left] !=
word2) {
++left;
}
if (left == _array.size()) {
return res;
}
size_t right = left + 1;
while (right < _array.size()) {
if (_array[right] == _array[left]) {
left = right;
} else if (_array[right] == word1 || _array[right] == word2) {
res = min(res, (int)(right - left));
left = right;
}
++right;
}
return res;
}
};
void WordsDistanceTest() {
WordsDistance wd{"this", "is", "a", "is", "fox", "happy"};
cout << wd.dist("is", "a") << ' ' << wd.dist("this", "fox") << endl;
}

【在 Z**********4 的大作中提到】
: 已挂,发了攒人品。
: 有一个array ["this", "is", "a", "is", "fox", "happy"]
: 需要返回两个单词的最近距离(用index计算)。
: int dist(string word1, string word2)
: 比如dist("fox", "happy") = 1
: dist("is", "fox") = 1 注意“is”是有重复的。
: 每个单词都是有可能重复的。

c******e
发帖数: 558
60
+1

【在 l*****a 的大作中提到】
: 有必要记录那么多吗?
: indexa=-1
: indexb=-1
: 然后找到一个就更新相应index,算Math.min(indexa-indexb)不就可以了?

相关主题
问一道FB面试题Given large text, find min cover distance of n words题目是什么意思啊?
google seti onsite问一道L家的题
LC的罗马转数字规则是什么?一道字符串题目
进入JobHunting版参与讨论
c*****m
发帖数: 271
61
这个followup怎么做啊?好像leecode上有,但是忘记了

【在 a***n 的大作中提到】
: 这题还有扩展,如果你连扩展都没做到,那确实要好好做功课。
: 扩展是,求一个最小区间,囊括了一个set of words。
: 这个问题在实际中也有很直接的应用:
: 比如用户丢了一个query里面有N个term,搜索引擎返回了一堆snippets,如果展现最简
: 洁的snippets且包括了所有term?
: 倒排索引应该能想到。
: 扩展问题解法就是贪心,不需要DP。

c*****m
发帖数: 271
62
这个followup怎么做啊?好像leecode上有,但是忘记了

【在 a***n 的大作中提到】
: 这题还有扩展,如果你连扩展都没做到,那确实要好好做功课。
: 扩展是,求一个最小区间,囊括了一个set of words。
: 这个问题在实际中也有很直接的应用:
: 比如用户丢了一个query里面有N个term,搜索引擎返回了一堆snippets,如果展现最简
: 洁的snippets且包括了所有term?
: 倒排索引应该能想到。
: 扩展问题解法就是贪心,不需要DP。

k******i
发帖数: 11
63
我之前也被面了这道题目, 当时面试官要求这个method会被call multiple times,
所以先用hashmap简历索引比较合理。
最小值的lookup可以做到worst case 0(n)。
假设两个word的index 序列是 int[] a, int[] b.
用两个index1, index2表示在各自序列中的位置。
一旦一个a[index1]的值大于b[index2], 继续增加index1不会得到小于当前最优的解(
consider a = [3,4], b = [1,2]),所以index2++
反之亦然,相互交替直到遍历完两个index数组。
hashmap初始化复杂度O(n)。
lookup复杂度O(a.length + b.length), worst case O(n)。

【在 Z**********4 的大作中提到】
: 就是用hash先存所有word可能出现的index序列
: 然后word1和word2的序列,希望找出其中具有最小绝对值的一对。
: 这一面试官要求O(n)的算法吧。。没想出来。

s*****n
发帖数: 102
64
用hash应该很方便吧?
key是word,value是word对应的一个或多个index的值
然后两个word的value一对比,找个min的就行了
l*****8
发帖数: 1083
65
这个one pass就可以了,cc150上就有类似的

【在 Z**********4 的大作中提到】
: 已挂,发了攒人品。
: 有一个array ["this", "is", "a", "is", "fox", "happy"]
: 需要返回两个单词的最近距离(用index计算)。
: int dist(string word1, string word2)
: 比如dist("fox", "happy") = 1
: dist("is", "fox") = 1 注意“is”是有重复的。
: 每个单词都是有可能重复的。

y****e
发帖数: 25
66
“扩展问题解法就是贪心“ - 能不能展开说说。

【在 a***n 的大作中提到】
: 这题还有扩展,如果你连扩展都没做到,那确实要好好做功课。
: 扩展是,求一个最小区间,囊括了一个set of words。
: 这个问题在实际中也有很直接的应用:
: 比如用户丢了一个query里面有N个term,搜索引擎返回了一堆snippets,如果展现最简
: 洁的snippets且包括了所有term?
: 倒排索引应该能想到。
: 扩展问题解法就是贪心,不需要DP。

w*****t
发帖数: 485
1 (共1页)
进入JobHunting版参与讨论
相关主题
问一道FB面试题Amazon面试问题(Convert word1 to word2)?
google seti onsiteedit distance vs. word ladder
LC的罗马转数字规则是什么?Microsoft screening programming problem
Given large text, find min cover distance of n words题目是什么意思啊?4sum的那道题
问一道L家的题做一下common prefix in sorted string arrays
一道字符串题目上一道我以前喜欢出的题目吧
Google Phone Interview好象是google的高频题目
问下Linkedin的一道电面谷歌面经
相关话题的讨论汇总
话题: dist话题: word1话题: word2话题: int话题: wordlist