Redian新闻
>
columbia和north face的衣服有啥区别?
avatar
columbia和north face的衣服有啥区别?# Fashion - 美丽时尚
y*k
1
背景:EE毕业但是做行业软件的,工作好多年了一直用C++。没有专门学过计算机专业
课。刷题刷了好几个月了。
上星期经历了几次店面,Linkedin是我自己觉得面得最好的,以为可以拿onsite了,结
果被据了。
别的店面感觉比Linkedin差很多的都过了,所以特别surprise. 我把问题详细贴出来,
并附上我自己的解答,请大家帮忙分析一下,是哪里出了问题,还是被三哥黑了。面试
一共分三部分。因为最后的题做得比较快,三哥还跟我谈笑风生了几分钟,说你的
coding不错,你来面试的时候需要多准备点系统设计,多线程之类的,搞得我以为我都
拿到onsite在为下一步准备了。
1. 10分钟互相介绍,然后问之前做的最难的项目,我说了一下,三哥问了几个问题,
双方都比较满意(之后的回答过程中,三哥不会说你哪里回答得不大好,但是会一直追
问直到他说ok,当然也不知道这个ok是好还是嘿嘿你丫错了)
2. 基础知识。
Q: virtual memory是如何工作的?优缺点?
A:操作系统一般在内存不够时分配虚拟内存,不够的虚拟空间存硬盘上。优点是内存
不够时还能转,缺点是硬盘读写速度慢
Q:如果有两个进程P1和P2,两个进程都分别读取地址0xabc,会发生什么?
A:因为是两个进程,系统会开两个不相干的地址空间,各读各的没有干扰。
Q: 那这样的读取到底是怎么实现的?P1说我要读0xabc,怎么就知道它能读到自己想要
的内存?
A: (这个我不明确科班的答案),就说操作系统应该有一个进程对page的映射,系统
知道在哪个page里面的地址空间里找。
Q: 这样的不同进程分配不同地址空间的做法有什么优缺点?
A: 优点是不同进程之间的地址各不相干,不会干扰;另外多个进程可以在总内存不够
的时候仍然能转;缺点是进程间通信比较麻烦。
Q:process和thread的区别
A: process是不共享内存的,thread共享内存。后来网上查了一下,好像主要是这个,
当然也说thread往往是light work,但是我觉得漏掉这个应该没有关系,三哥很快说ok
了。
3. 电脑上做题
三哥先敲了道简单的问我问题,我估计这个答得不是太好。
int a;
int* b[100];
Q: 如果改变a或者b有什么问题?
A: 改变a就是赋值还好,改变b实际上是改变了指向array的指针,可能会有问题。(后
来回想起来当时有点紧张,其实改变b也没有关系,或者应该说具体点,如果没有别的
指针指向array的话,array里面的内容没有变量指向,会有leak)
Q: 如果是多个线程要改变a或者b呢?
A: 那就有问题了,会conflict(我知道data race,但是当时没有说这个词)。
Q: a是从内存哪里来的?
A: heap
Q: 那b呢?
A: b指向的array内容也是从heap来的,但是b自己可能来自进程stack吧(后来想我是
不是错了,b是指针跟int差不多也得分配内存空间)。
然后编程题,设计一个数据结构,实现add(e), remove(e), removeRand(e), 都是O(1)
复杂度。我提出了用hash+array,并且在remove的时候,把array尾巴和remove的位置
swap,同时更新hash。三哥说这主意不错你写吧。
下面是我的程序。写完后三哥说cool, sounds good,又问了几个followup,说如果数
有重复怎么办。我说那个hash的value要改成list,记录所有相同元素的位置。那你现
在怎么产生随机数呢?我还没怎么想好,三哥就说是不是要看看重复的个数之类的,然
后就跟我瞎聊了。
大家帮我看看,我是哪里不对挂掉的呢?
template
class element {
public:
element() {}

void add (T e) {
array.emplace_back(e);
hash[e] = array.end() - 1;
}

void remvoe (T e) {
if (count(hash[e]) {
auto it = hash[e];
hash.erase(e);
if (!hash.empty()) {
auto lastit = array.end() - 1;
swap(*it, *lastit);
hash[*lastit] = it;
}
array.pop_back();
}
}

void removeRand() {
if (!array.empty()) {
default_random_engine re ((random_device())());
uniform_int_distribution dis(0, array.size() - 1);
int index = dis(re);
T e = array[index];
remove(e);
}
}

private:
vector array;
unordered_map::iterator> hash;
};
avatar
l*3
2
请问一下columbia和north face的大衣的区别在哪里?
如果过冬那家的衣服保暖性能好一些。
avatar
s*c
3
patpat,不过这给个onsite没什么问题吧
avatar
w*n
4
Northface更贵。同样的东西,贵的一般更好点。比如保暖程度一样,但是更轻薄些。
每一家不同保暖程度的衣服都有无数种,估计你在美国,只要不去爬雪山,两个牌子都
有能满足你要求的。
avatar
y*k
5
如果要挑毛病的话,是哪里需要注意呢?我希望通过这个总结自己也有提高,不要下一
次也挂了。

【在 s***c 的大作中提到】
: patpat,不过这给个onsite没什么问题吧
avatar
l*3
6
我说呢,这两家款式都差不多。
avatar
h*d
7
赞详细,感觉回答挺好,没缘分?
avatar
c*y
8
都不错,不同品牌而已,偶更喜欢north face
avatar
f*y
9
这个应该是在stack上
Q: a是从内存哪里来的?
A: heap
avatar
s*g
10
据说始祖鸟更好?没买过。 不过这两个就很不错了!
avatar
f*5
11
Q: a是从内存哪里来的?
A: heap
Q: 那b呢?
A: b指向的array内容也是从heap来的,但是b自己可能来自进程stack吧(后来想我是
不是错了,b是指针跟int差不多也得分配内存空间
都是stack,b没有用new
avatar
C*n
12
好比问USPS, UPS哪个送货更快。
avatar
t*r
13
>Q: 那这样的读取到底是怎么实现的?P1说我要读0xabc,怎么就知道它能读到自己想
要的内存?
> A: (这个我不明确科班的答案),就说操作系统应该有一个进程对page的映射,系
统知道在哪个page里面的地址空间里找。
TLB, hard/soft page faults, different types of page tables (e.g. multilevel,
inverse)
> Q:process和thread的区别
> A: process是不共享内存的,thread共享内存。后来网上查了一下,好像主要是这个
,当然也说thread往往是light work,但是我觉得漏掉这个应该没有关系,三哥很快说
ok了。
内存这词用的不准确吧,比如 https://en.wikipedia.org/wiki/Shared_memory#
Support_on_Unix-like_systems
这年头进程就是个容器,启动个地址空间给线程用
avatar
l*3
14
呵呵,我认为每个品牌都有自己的定位吧。columbia我觉得主要是户外滑雪登山啥的。
north face 这个品牌俺就不晓得的具体定位啦。呵呵
avatar
d*v
15
赞面经详细
avatar
y*n
16
听老公说 northface比columbia的要更专业 更高一级
avatar
z*g
17
L有严格的question bank。
感觉这些概念题以前在bank里面没见过,应该是面试官自己想出来搞人的。
feedback说你background不solid。
avatar
l*3
18
哦,是吗?咋专业说说
avatar
j*8
19
这烙印摆明了要黑你,move on吧

【在 y*k 的大作中提到】
: 背景:EE毕业但是做行业软件的,工作好多年了一直用C++。没有专门学过计算机专业
: 课。刷题刷了好几个月了。
: 上星期经历了几次店面,Linkedin是我自己觉得面得最好的,以为可以拿onsite了,结
: 果被据了。
: 别的店面感觉比Linkedin差很多的都过了,所以特别surprise. 我把问题详细贴出来,
: 并附上我自己的解答,请大家帮忙分析一下,是哪里出了问题,还是被三哥黑了。面试
: 一共分三部分。因为最后的题做得比较快,三哥还跟我谈笑风生了几分钟,说你的
: coding不错,你来面试的时候需要多准备点系统设计,多线程之类的,搞得我以为我都
: 拿到onsite在为下一步准备了。
: 1. 10分钟互相介绍,然后问之前做的最难的项目,我说了一下,三哥问了几个问题,

avatar
n*n
20
好象是一个衣服的标签写的columbia另一个写的是north face..
avatar
t*r
21
LZ写C++的背景,第三题答的的确不理想

【在 j*****8 的大作中提到】
: 这烙印摆明了要黑你,move on吧
avatar
b*l
22
north face更专业吧,好像透气性很好,羽绒服保暖,轻薄。
avatar
q*n
23
虽然还没有面完但必须要跳出来说一句,你被黑了
你的面经和我的类似,和一亩三分地里另一个人的也类似:http://www.1point3acres.com/bbs/forum.php?mod=viewthread&tid=157908&extra=page%3D1%26filter%3Dsortid%26sortid%3D311%26searchoption%5B3046%5D%5Bvalue%5D%3D6%26searchoption%5B3046%5D%5Btype%5D%3Dradio%26sortid%3D311
结果也一样,被拒,连第二次电面都没有
我被问了virtual memory,进程线程区别,你的第三题(我刷到过,似乎是Leetcode收
费题,说出来思路,烙印说不用coding了),以及LC原题Merge Interval,coding基本
是秒杀,被烙印质疑半天后来发现他不懂python里array[-1]是啥意思,讲清楚了就聊
天了。自我感觉妥妥onsite结果被拒
建议楼主:
1. 果断向recruiter投诉(我也投诉了)
2. move on,不要受这个影响,还有其他公司,领英以后也还有机会再面
avatar
l*3
24
每次去dick north face 的服装占主要区域而columbia展柜东东很少,呵呵。
avatar
n*s
25
第三题答的不好。
没说这两个变量在哪里定义,所以可能是stack ,也可能是全局变量数据区。
avatar
m*m
26
Arcteryx 要贵多了

【在 s*****g 的大作中提到】
: 据说始祖鸟更好?没买过。 不过这两个就很不错了!
avatar
s*d
27
频频看到国人被三哥三姐黑 很多人却还处于denial中不觉醒 慢慢弯曲国人就绝迹了

【在 q*********n 的大作中提到】
: 虽然还没有面完但必须要跳出来说一句,你被黑了
: 你的面经和我的类似,和一亩三分地里另一个人的也类似:http://www.1point3acres.com/bbs/forum.php?mod=viewthread&tid=157908&extra=page%3D1%26filter%3Dsortid%26sortid%3D311%26searchoption%5B3046%5D%5Bvalue%5D%3D6%26searchoption%5B3046%5D%5Btype%5D%3Dradio%26sortid%3D311
: 结果也一样,被拒,连第二次电面都没有
: 我被问了virtual memory,进程线程区别,你的第三题(我刷到过,似乎是Leetcode收
: 费题,说出来思路,烙印说不用coding了),以及LC原题Merge Interval,coding基本
: 是秒杀,被烙印质疑半天后来发现他不懂python里array[-1]是啥意思,讲清楚了就聊
: 天了。自我感觉妥妥onsite结果被拒
: 建议楼主:
: 1. 果断向recruiter投诉(我也投诉了)
: 2. move on,不要受这个影响,还有其他公司,领英以后也还有机会再面

avatar
l*3
28
Arcteryx ,啥牌子?俺菜鸟
avatar
k*e
29
第三题答错太多,不应该。感觉基础不扎实,尤其是你说你做了多年的C++。
int a;
int* b[100];
Q: 如果改变a或者b有什么问题?
A: 改变a就是赋值还好,改变b实际上是改变了指向array的指针,可能会有问题。(后
来回想起来当时有点紧张,其实改变b也没有关系,或者应该说具体点,如果没有别的
指针指向array的话,array里面的内容没有变量指向,会有leak)
// b是数组名,数组名是不能被赋值的。
Q: 如果是多个线程要改变a或者b呢?
A: 那就有问题了,会conflict(我知道data race,但是当时没有说这个词)。
Q: a是从内存哪里来的?
A: heap
// a应该是stack上
Q: 那b呢?
A: b指向的array内容也是从heap来的,但是b自己可能来自进程stack吧(后来想我是
不是错了,b是指针跟int差不多也得分配内存空间)。
// b应该也是stack上
avatar
y*y
30
这俩牌子对正经爬山的人来说都是笑话。
不爬山的话,都差不多吧。

【在 l******3 的大作中提到】
: 请问一下columbia和north face的大衣的区别在哪里?
: 如果过冬那家的衣服保暖性能好一些。

avatar
k*e
31
>Q: 那这样的读取到底是怎么实现的?P1说我要读0xabc,怎么就知道它能读到自己想
要的内存?
> A: (这个我不明确科班的答案),就说操作系统应该有一个进程对page的映射,系
统知道在哪个page里面的地址空间里找。
TLB, hard/soft page faults, different types of page tables (e.g. multilevel,
inverse)
//补充一点,CPU/SoC需要有MMU或者MPU支持,做address translation。如果OS支持的
话是可以不需要MMU/MPU的,如uCLinux。
> Q:process和thread的区别
> A: process是不共享内存的,thread共享内存。后来网上查了一下,好像主要是这个
,当然也说thread往往是light work,但是我觉得漏掉这个应该没有关系,三哥很快说
ok了。
内存这词用的不准确吧,比如 https://en.wikipedia.org/wiki/Shared_memory#
Support_on_Unix-like_systems
这年头进程就是个容器,启动个地址空间给线程用
// 补充一点,除了内存,还包括其他资源,如Windows下的临界区,是该process中所
有的thread共享的,非kernel object,使用时无须进行模式切换,较快。扯远了,教
科书的定义应该是Process是操作系统中资源分配的单位,资源包括虚拟地址空间和其
他各种object;线程是操作系统执行调度的单位,当然线程还分用户态线程(如
Windows中的Fiber)和内核态线程。

multilevel,

【在 t*********r 的大作中提到】
: >Q: 那这样的读取到底是怎么实现的?P1说我要读0xabc,怎么就知道它能读到自己想
: 要的内存?
: > A: (这个我不明确科班的答案),就说操作系统应该有一个进程对page的映射,系
: 统知道在哪个page里面的地址空间里找。
: TLB, hard/soft page faults, different types of page tables (e.g. multilevel,
: inverse)
: > Q:process和thread的区别
: > A: process是不共享内存的,thread共享内存。后来网上查了一下,好像主要是这个
: ,当然也说thread往往是light work,但是我觉得漏掉这个应该没有关系,三哥很快说
: ok了。

avatar
l*3
32
啊,那科普扫盲一下,如果爬山你们专业的穿啥牌牌
avatar
k*e
33
答上stack我觉得就算对了,至于是不是在bss可以作为follow up。
如果因为没有同时答出stack或者bss,就关掉楼主,那就有点黑人了。

【在 n**s 的大作中提到】
: 第三题答的不好。
: 没说这两个变量在哪里定义,所以可能是stack ,也可能是全局变量数据区。

avatar
y*y
34
业余爱好,有钱的买上面提到的始祖鸟Arcteyrx,没闲钱的有Marmot,First Ascent,
Mountain Hardware,Outdoor Research之类的,都差不太多。

【在 l******3 的大作中提到】
: 啊,那科普扫盲一下,如果爬山你们专业的穿啥牌牌
avatar
o*l
35
其实真户外运动,很少用这两个牌子,玩票还可以。
比较喜欢哥伦比亚的快干保暖内衣。
冲锋衣,抓绒外套都没什么差别。
avatar
l*3
36
呵呵,这么牌牌
avatar
l*3
37
上面兄弟的意思就是说columbia和North face 如果户外运动还是不行滴。
那如果冬天保暖那个好一些
avatar
j*2
38
pataGonia好。。。

【在 l******3 的大作中提到】
: 上面兄弟的意思就是说columbia和North face 如果户外运动还是不行滴。
: 那如果冬天保暖那个好一些

avatar
l*3
39
我就不想买厚重的羽绒服,想买个轻便的保暖性能好的。因为这两家东西太相似了,从
款式到面料。让我无从选择。有点晕
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。