Oversea_Job 板


LINE

我只是想来解谜的XD : 1. Sereialize and deserialize a b-tree 我第一个想到的是偷吃步做法: b-tree存的不是指标,而是index to memory pool unsigned char* const pool = (unsigned char*)malloc(BIG_N); typedef struct node { size_t left_node_idx; size_t right_node_idx; size_t data_idx; size_t data_size; } Node; Node* const nodes = (Node*)malloc(N*sizeof(Node)); Node* node_iter = nodes; unsigned char* pool_iter = pool; // Assume we have input: unsigned char * input_data // here's how we store the data into a node Node* node_1 = node_iter++; size_t size = sizeof(*input_data); memcpy(pool_iter, input_data, size); node_1->data_idx = pool_iter - pool; node_1->data_size = size; pool_iter += size; 由於资料都是存在pool以及nodes里面,所以serialize很简单,直接输出index就行了 使用pool的好处是,可以realloc,直接扩充长度 free的时候也可以整个pool一起处理,不需要递回一个一个free 缺点是存取node资料时,syntax比较不方便 不过如果node资料是固定的值,例如只是一个int,那倒还好 以上使用长度不一的unsigned char是比较麻烦的case 如果不是用这种形式来存b-tree 那我想..直接输出lisp form 最直接吧 (((1 2 3) 4 nil) 5 ((nil 7 8) 6 9)) 等价於 5 / \ 4 6 / / \ 2 7 9 / \ \ 1 3 8 毕竟lisp本来就是一种很适合处理递回结构的语言,用这种方式输出很自然 也很好parse: 碰到左括号就推到stack,右括号就pop... : 2. 3 sum: find x+y+z=A in an integer array (at least O(n^2) solution) 碰到array题目,不求最速解,先从算起来不会太慢的方式来做,就是先sort O(nlogn) 得到sort过的array 从头开始找 x O(n) 然後从array里找所有的y O(n^2) 最後是z,可用binary search O(n^2 logn) 要能算出O(n^2)以内的... 我会想试着用锁定一个,另外两个用两个指针从前後包夹去算 但详细算法要慢慢试才弄得出来,不是解面试题玩家很难在15分钟内弄出来吧... : 3. find the medium in an integer array (O(n) solution) 这题如果array内容没先sort过,那也是玩家等级才有办法在15分钟内给出演算法+程式 不求最速解,那还是一样先sort --> O(nlogn) 看奇偶直接给解n/2+1 or n/2 --> O(1) 不求玩家等级的话,这样就是标准解了,很好想 身为面试官倒是可以看看这人对基本的程式语言操作熟不熟悉 例如呼叫c q_sort 我给的解法都蛮直观的,也没有达到效能的要求,可是光打完就远不只15分钟啦 能够真的在15分钟过关的,打字或线上考试的速度一定超快 = = --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.45.171.118
1F:→ dryman:serialize那题,pool及nodes当然也要输出。忘记写 12/12 00:54
2F:→ mud2008:我只想说.对方要你给O(n). 你给 O(nlogn).你在答非所问吗 12/12 02:24
3F:→ mud2008:你要解要马O(n)或更快的time complexity. 不是给更慢的解. 12/12 02:27
4F:推 wccwang:第三题用 median of medians worst case O(n) 12/12 04:23
5F:→ wccwang:不过没做过不太可能面试时想出来 12/12 04:24
6F:→ dryman:我其实近期也面试过不少美国公司,其实别人最想要看的,不 12/12 07:22
7F:→ dryman:是你把题目背得多熟,而是你解题的过程。 12/12 07:22
8F:→ dryman:就算没有达到big-O的要求,写程式时能有一定的洗炼度,少 12/12 07:23
9F:→ dryman:bug,且能呈现一般的演算法及资料结构知识,这样也够好了 12/12 07:24
10F:→ dryman:以上是现场答题时对方想看的。一半,比没有好... 12/12 07:27
11F:→ mud2008:没人想看背出来的答案. 但也不想看答非所问. 不然就不会 12/12 08:01
12F:→ mud2008:告诉你time complexity 要多少. 这个是要求也是 Hint. 12/12 08:02
13F:→ dryman:面试不是要求完全答对不然零分的考试。 12/12 08:07
14F:→ mud2008:科科. 你要这麽认为的话就随你罗.. :) 12/12 08:08
15F:→ dryman:不如请楼上来分享您的经验,毕竟小弟我也只有寥寥数次而已 12/12 08:28







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Soft_Job站内搜寻

TOP