问一道刚面试完的algorithm 的题, 面试官非要最优解,我想不出来啊# JobHunting - 待字闺中
l*i
1 楼
Q:Give a array of integers, remove all the duplicate.
我首先说sort array,然后比较当前和next,如果一样,就in place override当前,
最后array 就shrink到没有duplicate的了。面试官说sort too expensive.
接着,我说用map,如果insert过了,就 remove,他说hash expensive。
接着,我说用set,当insert int 到set 里有conflict stl会catch到,然后in place
override duplicate,面试官说set 还是用的hash,expensive,有可能collision,
hash不一定O(1)time complexity.
好像面试官一定要求不能extra time cost, space没有明确限制。
请问板上大神怎么破?
接下来,他又说,假如给你的array里面都是string呢?又怎么解?
我首先说sort array,然后比较当前和next,如果一样,就in place override当前,
最后array 就shrink到没有duplicate的了。面试官说sort too expensive.
接着,我说用map,如果insert过了,就 remove,他说hash expensive。
接着,我说用set,当insert int 到set 里有conflict stl会catch到,然后in place
override duplicate,面试官说set 还是用的hash,expensive,有可能collision,
hash不一定O(1)time complexity.
好像面试官一定要求不能extra time cost, space没有明确限制。
请问板上大神怎么破?
接下来,他又说,假如给你的array里面都是string呢?又怎么解?