由买买提看人间百态

topics

全部话题 - 话题: 头尾
首页 上页 1 2 3 4 5 6 7 8 9 10 (共10页)
f**l
发帖数: 44
1
来自主题: JobHunting版 - G新鲜面经
1.2 就是说一个数组,找一个序列,使得第一个小于第二个,第二个大于第三个,第三
个小于第四个,第四个大于第五个。。一个大牛的解法是先sort,然后头尾分别取,这
个应该work。但follow up是如何返回所有的valid序列,这个我没打上来。
4. generalized tree其实就是一个list,就是说,树上任何一个节点,如果至多只有
一个child,那么就是valid的结果。很明显所有的leaf节点都满足,我上面的例子中,
2也符合,因为他只有一个child,其他节点1和3不符合,因为他们都有两个子节点。
s********u
发帖数: 1109
2
还只是胡思乱想,也不太严谨。欢迎指正。(只讨论目前算法面试题一般涵盖的范围)
前言:
我知道大家都会说当满足最优子结构、subproblem overlap的时候可以用dp。但其实这
个条件个人感觉不太实用。
1.比如不overlap的时候也可以用dp,只是效率不提高,还增加了space cost而已。(
所以这个原则应该是“适合用dp”,而不是“可以用dp”
另外且不说最优子结构,overlap有时候也较难判断,比如boggle game这个,路径一定
是有重复的,但是
subproblem却未必,因为前驱的访问节点会影响后驱节点的"胜利条件"。
2.另外,就算是有overlap,从实用的角度来说,dp(bottom-up)未必方便实现。比如
用DFS来判定二叉树中是否有某个节点(cc150的4.7),bool cover( root, p )本身是
单纯的DFS访问,subproblem不存在overlap;但对整个问题而言,cover不停的调用,
对整个问题而言subproblem存在overlap。同样的还有4.1.因为这两个题目都在DFS中使
用了DFS,递归函数中调用了递归... 阅读全帖
l*n
发帖数: 529
3
这里可以用两个不算做数据的dummy head、tail node,否则考虑头尾的conner case很
麻烦。

key
r********7
发帖数: 102
4
嘻嘻,没看懂。。 啥叫dummy head, tail 啊? 怎么实现呢?
每次都考虑头尾,确实很麻烦,弄得头大。。
m********o
发帖数: 796
5
来自主题: JobHunting版 - 美国已经被阿三占领了 (转载)
的确,种族斗争需要的是几个聪明的大脑去指挥几百个没脑的,金字塔结构;而我们的
问题是大部分人都有点脑子,但又没有顶尖的,金字塔中上部过于雍肿头尾过轻,自保
还行开拓无力
w********s
发帖数: 1570
6
只要修改一下头尾两位呼唤的开销,就可以了。
w********s
发帖数: 1570
7
只要修改一下头尾两位呼唤的开销,就可以了。
f*****e
发帖数: 2992
8
是不是必须从头开始复制?可以先peek n 遍知道头尾什么元素,再压一个INT_MAX。
e********3
发帖数: 18578
9
对,你这个解法是更优化的,多谢了,我应该想到的,其实in-place quick sort和你这
样用两个头尾index方法类似。

的。
f*****e
发帖数: 2992
10
是不是必须从头开始复制?可以先peek n 遍知道头尾什么元素,再压一个INT_MAX。
e********3
发帖数: 18578
11
对,你这个解法是更优化的,多谢了,我应该想到的,其实in-place quick sort和你这
样用两个头尾index方法类似。

的。
w******g
发帖数: 189
12
来自主题: JobHunting版 - 请教linkedin一个面试题
就是那道双向链表题:
"
一个双向链表,带头尾指针,每个节点可能都有父节点和子节点,每个父子节点又是
一个链表。要求把它拍扁,顺序随意。
"
题目确切是啥意思?有没有大牛讲讲或者举个例子?解题思路呢?
thanks in advance!
w******g
发帖数: 189
13
来自主题: JobHunting版 - 请教linkedin一个面试题
就是那道双向链表题:
"
一个双向链表,带头尾指针,每个节点可能都有父节点和子节点,每个父子节点又是
一个链表。要求把它拍扁,顺序随意。
"
题目确切是啥意思?有没有大牛讲讲或者举个例子?解题思路呢?
thanks in advance!
A*****o
发帖数: 284
14
来自主题: JobHunting版 - L 家面试高频题, 怎么解
一个双向链表,带头尾指针,每个节点可能都有父节点和子节点,每个父子节点又是
一个链表。要求把它拍扁,顺序随意。
请大牛给个指点.谢谢
p**o
发帖数: 3409
15
双向链表其实可以封装一下,加个属性表示正向和逆向(翻转只要改这个值即可)
头尾指针用二重指针来做,中间结点的next和prev指针变量靠offset来区别
z*******3
发帖数: 13709
16
来自主题: JobHunting版 - LinkedIn面经(已跪),攒个rp
对比一下queue和heap的效率哈
queue的删除很简单,尤其是删除头尾,对内部结构完全没有影响
heap的删除root之后,要heapify,这个开销很大
插入
两个都是lgn,所以queue可以省掉heapify这一个步骤
看hadoop什么都是用priorityqueue,而不是treemap
所以这题貌似heap并不是最优解,只是一个相对简单的解法
看来swjtuer是对的
z*******3
发帖数: 13709
17
来自主题: JobHunting版 - LinkedIn面经(已跪),攒个rp
对比一下queue和heap的效率哈
queue的删除很简单,尤其是删除头尾,对内部结构完全没有影响
heap的删除root之后,要heapify,这个开销很大
插入
两个都是lgn,所以queue可以省掉heapify这一个步骤
看hadoop什么都是用priorityqueue,而不是treemap
所以这题貌似heap并不是最优解,只是一个相对简单的解法
看来swjtuer是对的
t***t
发帖数: 6066
18
来自主题: JobHunting版 - 報個O家的offer
可是进去的时候如果是高点就一分赚不到。当年ESPP还给头尾低点15%折扣的,后来只
给尾部5%了。结果大家都把它cancel掉了。
h*******q
发帖数: 5
19
从准备面试开始潜水,在本版上收获不少。所以想尽一点绵薄之力,贡献一点电面面经。
L家 - 挂了:
电面1: 白人,HM.
Chat 5 min.
Basic Question: 10 min: TCP vs UDP, Virtual Memory, Page fault, etc...
Question 1: Mirror a Tree
Solution: recursive
Question 2: Implement a data structure class support: insert, delete and
random get
Solution: two hash map and move last to fill the hole when deleting
电面2: 国人
Question: Java Blocking Queue,
Solution: 参见本版讨论
G家 - 挂了:
电面1: 三哥,很不友好,解题的时候一个劲打岔,想挑个错,结果发现是他错了。然
后让我refine code 15分钟。
Question: Double Circular Sorted... 阅读全帖
y***n
发帖数: 1594
20
来自主题: JobHunting版 - 版上看到的几道F家的题目
这个有点看晕了,我可能会用一个map 存一下被Flatten的List 的头尾
节点,然后Restore 一下。
w*****d
发帖数: 105
21
来自主题: JobHunting版 - 一道面试题
有parent指针就好说:找到p和q的最低共同祖先r,然后打印出以r为根的子树的所有叶
子,头尾去掉p和q即可。
如果没有parent指针,只能中序遍历,条件判断每个节点是否叶子,是否在p和q中间了
m*****n
发帖数: 2152
22
来自主题: JobHunting版 - 问道G家的题
非科班出身,看都看不懂什么最小子集,唉~~。
用个最土的方法,BFS来解,时间复杂度可能不是最优,抛砖引玉。
建一个bitset table,C++用vector >
每个row就是dynamic_bitset<> 存dict里面长度与target相同的string的第column位的
与target第column位的异同值,比如
apple, [blade] -> [[0],[0],[0],[0],[1]]
apple, [“plain”, “amber”, “blade”] -> [[0,1,0],[0,0,0],[0,0,0],[0,0,0]
,[0,0,1]]。
完成转换以后可以一眼看出,如何得到答案,就是每个row全0的可以完全区分。以上第
二题1p3,2p2,3l1都是答案。
其中,头尾两个row最特殊,比中间row要abbr度要高,比如第一题a4,显然比1p3,2p2,
3l1要高。
对于复杂问题,没有一个row全0的话,就要用BFS,逐个logic_and组合,得到全0的row
。组合时
可以把全1的row全部踢掉,因为没帮... 阅读全帖
m*****n
发帖数: 2152
23
来自主题: JobHunting版 - 问道G家的题
target: abcde 字典:[aaaaa, bbbbb, ccccc, ddddd, eeeee]
编码是[[10000],[01000],[00100],[00010],[00001]]所以最小的是取任意 两个row
and就可以了。但是要优先取头尾两个row,原因上面说过了。所以这题答案是ab3, 3de
, a3e都行,其他的如a1c2,等等,abbr度不够,
m*****n
发帖数: 2152
24
来自主题: JobHunting版 - 问道G家的题
非科班出身,看都看不懂什么最小子集,唉~~。
用个最土的方法,BFS来解,时间复杂度可能不是最优,抛砖引玉。
建一个bitset table,C++用vector >
每个row就是dynamic_bitset<> 存dict里面长度与target相同的string的第column位的
与target第column位的异同值,比如
apple, [blade] -> [[0],[0],[0],[0],[1]]
apple, [“plain”, “amber”, “blade”] -> [[0,1,0],[0,0,0],[0,0,0],[0,0,0]
,[0,0,1]]。
完成转换以后可以一眼看出,如何得到答案,就是每个row全0的可以完全区分。以上第
二题1p3,2p2,3l1都是答案。
其中,头尾两个row最特殊,比中间row要abbr度要高,比如第一题a4,显然比1p3,2p2,
3l1要高。
对于复杂问题,没有一个row全0的话,就要用BFS,逐个logic_and组合,得到全0的row
。组合时
可以把全1的row全部踢掉,因为没帮... 阅读全帖
m*****n
发帖数: 2152
25
来自主题: JobHunting版 - 问道G家的题
target: abcde 字典:[aaaaa, bbbbb, ccccc, ddddd, eeeee]
编码是[[10000],[01000],[00100],[00010],[00001]]所以最小的是取任意 两个row
and就可以了。但是要优先取头尾两个row,原因上面说过了。所以这题答案是ab3, 3de
, a3e都行,其他的如a1c2,等等,abbr度不够,
M*******a
发帖数: 1633
26
就是左右子数都返回个sorted list,这回个list包含头尾指针,然后再三段连起来。
w******e
发帖数: 1621
27
这个能不能greedy?看起来有点像leetcode的trap water
更新:这个应该就是greedy证明和trap water一样。
左右2个指针指头尾,指的数小的那个移动,记录最大距离。
w******e
发帖数: 1621
28
这个能不能greedy?看起来有点像leetcode的trap water
更新:这个应该就是greedy证明和trap water一样。
左右2个指针指头尾,指的数小的那个移动,记录最大距离。
y*****e
发帖数: 712
29
我觉得和container那题有类似之处,但不是完全相同
两个指针分别指头尾,算右指针左移的cost
costR = A[r - 1] - A[r] - 1;
左指针右移的cost
costL = A[l + 1] - A[l] - 1;
比较costR, costL大小,哪个大就往哪边移

呀。
l****o
发帖数: 315
30
来自主题: JobHunting版 - 贡献Google 电面面经
这个只去头尾啊少年。
m****t
发帖数: 555
31
来自主题: JobHunting版 - 国庆节 狗家面经
triplet那道题,简单的做法和3sum差不多。先排序,转化为2sum问题。对于每个a[i],
计算a[j], a[k] 的 2sum。 头尾 j,k 两二个指针往中间走,if a[j]+a[k]<=X-a[i]
,则count += k-j;最后输出count.
这样的时间复杂度是O(n^2).
D*******r
发帖数: 2323
32
它的解法是在头尾两端各加一个lower - 1和upper + 1的element,以此来简化edge
cases的处理。
public List findMissingRanges( int[] vals, int start, int end) {
List ranges = new ArrayList<>();
int prev = start - 1;
for (int i = 0; i <= vals.length; i++) {
int curr = (i == vals.length) ? end + 1 : vals[i];
if (curr - prev >= 2) {
ranges.add(getRange(prev + 1, curr - 1));
}
prev = curr;
}
return ranges;
}
private String getRange( int from, int to) {
return (from == to)... 阅读全帖
y*****n
发帖数: 1235
33
来自主题: JobHunting版 - 一道面试改错题,求答案
Int r=-1就可以了。
有可能全是正面。然后必须flip一个。选头尾的就行。
M**********7
发帖数: 378
34
来自主题: JobHunting版 - 问个GG面经里的题
这个观察不错,就是头尾的对子可以拿掉。
可算法上好像还是有问题,像以下这种情况,要交换2和0位,就不是最优了。
0 1 2
A B B

2
M**********7
发帖数: 378
35
来自主题: JobHunting版 - 恭贺新禧 发谷家面经
首先感谢推荐以及陪同午饭的大牛哥,以及一直帮忙的美女!
本着同样帮同胞的精神回馈一下版面。
今天接到人力电话,说反馈还不错,但是很遗憾只能明年见了,不知道啥原因。
当时面试感觉挺好的,面之前就知道这个据点不怎么招人,不知道是不是这个原因。
电面两轮。
共五轮,有三轮和面试官谈的双方都很开心,其他的一轮也算中上,有一轮一般,但题
也做出来了。
所有题不是leetcode加面经覆盖过的,就是思路不怎么难的题。
不按照顺序上题
一、一道面经里面提到过讨论过,但是不太一样的。改用中文例子。
就是字符串编码解码。
编码规则是
原字串:
春节快乐喜气羊羊羊年大吉
编码为:
春节快乐喜气3x羊年大吉
两个情况下会有歧义:一个是原字串中的数字加x
之前面经提到的是用两个x转义,但是我遇到的要求是解码程序的逻辑不能改变。
此外还有压缩后前面的数字问题,比如
3羊羊羊开泰
变成33x羊开泰则解码程序会出错。
实际上这两个问题是一个问题,就是编码后源串中代表数字的字符恰好出现在数字加x
前面怎么办。
经过讨论,解决方法是将所有的领头数字编码例如:
3羊羊羊开泰
就编码成
1x33x羊开泰
要求尽量优化,也就... 阅读全帖
S***w
发帖数: 1014
36
来自主题: JobHunting版 - 恭贺新禧 发谷家面经
二、每个字串可以编码为头尾字符和中间的字符数
例如
新春快乐万事如意
变成
新6意
实现方法给一个字典,一个字串,返回字串的编码是否在字典里面有冲突。
确认了字串是否一定在字典里;反问你怎么设计;我说如果在的话还是返回是否有冲突
,如果不在的话返回是否和现有的有冲突;认可这个设计。
确认字串长度不足3怎么办;反问你怎么设计;我说不足就是返回原串;认可这个设计。
确认思路是每个字串都可以直接得到编码,之后用这个编码字串判断冲突就可以。
实现很直接;写的时候,提到如果工作中遇到的话,一般要构建这个字典,所以可以保
留一个编码到字串的哈希表,用来直接判断。
对方听了以后让设计这个类的api。
这题目 什么意思
没看懂 :-)
x*******6
发帖数: 262
37
来自主题: JobHunting版 - 恭贺新禧 发谷家面经
二、每个字串可以编码为头尾字符和中间的字符数
例如
新春快乐万事如意
变成
新6意
实现方法给一个字典,一个字串,返回字串的编码是否在字典里面有冲突。
这个题好像当年叫i18n?
发现现在好多公司出老题
原字串:
春节快乐喜气羊羊羊年大吉
编码为:
春节快乐喜气3x羊年大吉
这个一两年前也好像也见到过,aabccc -》 a2bc3
赞面经
M**********7
发帖数: 378
38
来自主题: JobHunting版 - 恭贺新禧 发谷家面经
首先感谢推荐以及陪同午饭的大牛哥,以及一直帮忙的美女!
本着同样帮同胞的精神回馈一下版面。
今天接到人力电话,说反馈还不错,但是很遗憾只能明年见了,不知道啥原因。
当时面试感觉挺好的,面之前就知道这个据点不怎么招人,不知道是不是这个原因。
电面两轮。
共五轮,有三轮和面试官谈的双方都很开心,其他的一轮也算中上,有一轮一般,但题
也做出来了。
所有题不是leetcode加面经覆盖过的,就是思路不怎么难的题。
不按照顺序上题
一、一道面经里面提到过讨论过,但是不太一样的。改用中文例子。
就是字符串编码解码。
编码规则是
原字串:
春节快乐喜气羊羊羊年大吉
编码为:
春节快乐喜气3x羊年大吉
两个情况下会有歧义:一个是原字串中的数字加x
之前面经提到的是用两个x转义,但是我遇到的要求是解码程序的逻辑不能改变。
此外还有压缩后前面的数字问题,比如
3羊羊羊开泰
变成33x羊开泰则解码程序会出错。
实际上这两个问题是一个问题,就是编码后源串中代表数字的字符恰好出现在数字加x
前面怎么办。
经过讨论,解决方法是将所有的领头数字编码例如:
3羊羊羊开泰
就编码成
1x33x羊开泰
要求尽量优化,也就... 阅读全帖
S***w
发帖数: 1014
39
来自主题: JobHunting版 - 恭贺新禧 发谷家面经
二、每个字串可以编码为头尾字符和中间的字符数
例如
新春快乐万事如意
变成
新6意
实现方法给一个字典,一个字串,返回字串的编码是否在字典里面有冲突。
确认了字串是否一定在字典里;反问你怎么设计;我说如果在的话还是返回是否有冲突
,如果不在的话返回是否和现有的有冲突;认可这个设计。
确认字串长度不足3怎么办;反问你怎么设计;我说不足就是返回原串;认可这个设计。
确认思路是每个字串都可以直接得到编码,之后用这个编码字串判断冲突就可以。
实现很直接;写的时候,提到如果工作中遇到的话,一般要构建这个字典,所以可以保
留一个编码到字串的哈希表,用来直接判断。
对方听了以后让设计这个类的api。
这题目 什么意思
没看懂 :-)
x*******6
发帖数: 262
40
来自主题: JobHunting版 - 恭贺新禧 发谷家面经
二、每个字串可以编码为头尾字符和中间的字符数
例如
新春快乐万事如意
变成
新6意
实现方法给一个字典,一个字串,返回字串的编码是否在字典里面有冲突。
这个题好像当年叫i18n?
发现现在好多公司出老题
原字串:
春节快乐喜气羊羊羊年大吉
编码为:
春节快乐喜气3x羊年大吉
这个一两年前也好像也见到过,aabccc -》 a2bc3
赞面经
z***m
发帖数: 1602
41
来自主题: JobHunting版 - fb家面试题讨论
先生成DLL,然后把头尾相连
z***m
发帖数: 1602
42
来自主题: JobHunting版 - fb家面试题讨论
先生成DLL,然后把头尾相连
x******8
发帖数: 48
43
来自主题: JobHunting版 - FB Onsite新题,有人能看看吗?
根据mitkook2大神的代码改了一下,思路是一致的,大家参考一下
// O(n*k) time, O(n) space
boolean alibaba(int numCaves, int[] strategy) {
// survival[i] means theft can be in spot i or not on this day
boolean survival[] = new boolean[n + 2];

// init the first day
// 在头尾加一个房间,且小偷不可能出现在这两个房间(为了处理下面j - 1
和j + 1越界的情况)
Arrays.fill(survival, true);
survival[0] = false;
survival[n + 1] = false;
survival[strategy[0]] = false;

for (int i ... 阅读全帖
s****3
发帖数: 270
44
来自主题: JobHunting版 - Google NYC 面经
Word abbreviation 需要有rule吗还是就是剩头尾?
h**p
发帖数: 211
45
来自主题: JobHunting版 - 贡献一道G家onsite题吧
上面有人说了,总结下2种方法(需要建立有向图)
#1 recursion + back track
设一个set来存所有的edge,走过的就删掉
base case 是当edge为空,此时又刚好到达终点
另一个是当edge为空,此时到达不了终点,或者当前点无路可走。然后返回上一步,换
一条路径
#2 permutation,permute所有线段,然后走一遍检测。优化条件是每段线的头尾是否
是相连
t**r
发帖数: 3428
46
哈哈
矩阵多简单,index搞搞 还是比哪个link来link去容易多了。
一个循环 link折腾四次 也是晕晕的。还要考虑空指针 和头尾结点的corner cases.
一次写bug free简直是梦。
l*****a
发帖数: 14598
47
来自主题: JobHunting版 - 问一道uber onsite题目
如果转成list的话,一个就够了
头尾两个index,swap string only and skip symbols
s****3
发帖数: 270
48
来自主题: JobHunting版 - G's interview, 2 questions
kmp 要怎么解阿? 第一题是随处都可加character 还是只能加在头尾?
e****e
发帖数: 1885
49
来自主题: JobHunting版 - 讲一待字闺中的“真实故事”
众位看官,且听我一原创故事 by ertrue
话说很近很近以前,东胜神州崇山峻岭之间诞生一小马农,听风便长,闻水即壮,几年
间便修的身体强健,耳聪目明。一日,忽闻一则消息,说西方西牛贺州出了一大国,刚
刚攻克宇宙难题之“围棋精要”,该国动则呼风唤雨,静则万众敬仰。此马工随心向往
之,潜心修行许久,后方出关,自名曰“行者”,携娟秀彩云投名状,打算往西前行,
妄图攀上该国之仙福,共享该国之富贵。
长话短说,却道日月潜行,道路迢迢。这好行者,虽前途艰险、却不畏强难,虽关隘重
重、却一心一意,虽万水千山、却勇往直前。威威乎似山中之猛虎下山,凛凛兮若盘云
之巨蟒吞日,行如云长之千里单骑,动若悟空之万里取经。这行者一路上过关斩将、披
坚执锐,所到之处无不偃旗息鼓、望风而降。一路通行无碍,所遇关卡兵隘一一投降。
有诗为证:
东方神州出马农
一心向西定从容
到得西方真经处
无畏艰险为繁荣
话说,行者一人独自披荆斩棘,路途行至十九,眼见就要到达真经所在,西方大国卧佛
之处,却不巧踏上本地天竺国境内。原来这西牛大国原本不在天竺之中,怎奈天竺人本
就在西方,所谓近水楼台先得月,久而久之竟也把诺大个国家划入... 阅读全帖
k******a
发帖数: 44
50
第5题可以这样做吧?
把数组分为4段,那个5个端点为1,2,3,4,5.
先判断1-2,2-3,3-4,4-5是否头尾为同一数字,如果是那么就是答案
如果不是,那么答案为2,3,或者4的点。分别从2,3,4开始向左右进行二分查找,找
边界。找到边界后,总体长度大于25%的就是答案。
首页 上页 1 2 3 4 5 6 7 8 9 10 (共10页)