d****l 发帖数: 224 | 1 听说过以前他们要电面两轮
不过没想到现在居然被安排到了一天
不过这样也好,挺省事的
现在的面试比较直接,上来就写程序
不用罗嗦,两个面试都这么一个情况
第一个人
1. 返回给定字符串的第一个不符合字母顺序的index
比如abcdaf就需要返回第二个a的index,比如aZe就返回e的index
反正题目不难,就是需要考虑的东西多一点
2. 检查sudoku的输入是valid,允许solution是不完全的
题目一样还是简单,还是要考虑一些细节
比如你的matrix用什么表示,int**的话 就没法表示空白的格子
第二个人
1. 就是那道带random pointer的linklist的copy。我当时给的solution当然是用
hashmap之类的东西做,她也没反对,好像是接受了。不过刚才看了其他的解,觉得最
好的还是那个在原有序列里面插入再拆分的解,看着比较完美
2. 不是程序问题了,稍微有点设计的意思。给了3个函数,分别是注册一个电话号码;
是否被注册;返回一个未被使用的号码。然后问我数据结构以及方法怎么实现。我首先
问这些号码是存储在内存还是数据库里面的。其实这个题目挺二的, |
o*******7 发帖数: 13 | |
P*******e 发帖数: 1353 | 3 trie
【在 o*******7 的大作中提到】 : 电话号码那题,是不是可以用tree做?
|
P*******e 发帖数: 1353 | 4 sudoku空白的地方算0不就可以了?有什么问题么?
【在 d****l 的大作中提到】 : 听说过以前他们要电面两轮 : 不过没想到现在居然被安排到了一天 : 不过这样也好,挺省事的 : 现在的面试比较直接,上来就写程序 : 不用罗嗦,两个面试都这么一个情况 : 第一个人 : 1. 返回给定字符串的第一个不符合字母顺序的index : 比如abcdaf就需要返回第二个a的index,比如aZe就返回e的index : 反正题目不难,就是需要考虑的东西多一点 : 2. 检查sudoku的输入是valid,允许solution是不完全的
|
d****l 发帖数: 224 | 5 本意是让我自己检查输入
也就是允许有乱七八糟的字符(或者允许有任意的数字)
当然 其实也不是大问题
【在 P*******e 的大作中提到】 : sudoku空白的地方算0不就可以了?有什么问题么?
|
m*****f 发帖数: 1243 | 6 soduku不应该涉及到matrix, 用bitwise operation做是最佳答案
最后一题我觉得应该用hashtable + B+tree吧. 自动分配的时候总往size最小的一个子树分配,一个高度为电话号码长度+1的十叉树 |
h****h 发帖数: 75 | 7 G公司是指Google?
【在 d****l 的大作中提到】 : 听说过以前他们要电面两轮 : 不过没想到现在居然被安排到了一天 : 不过这样也好,挺省事的 : 现在的面试比较直接,上来就写程序 : 不用罗嗦,两个面试都这么一个情况 : 第一个人 : 1. 返回给定字符串的第一个不符合字母顺序的index : 比如abcdaf就需要返回第二个a的index,比如aZe就返回e的index : 反正题目不难,就是需要考虑的东西多一点 : 2. 检查sudoku的输入是valid,允许solution是不完全的
|
S******A 发帖数: 1002 | 8 sudoku这个当场写code还蛮费时间的吧 col/row/3x3grid
比如abcdaf就需要返回第二个a的index,比如aZe就返回e的index - binary search?
【在 d****l 的大作中提到】 : 本意是让我自己检查输入 : 也就是允许有乱七八糟的字符(或者允许有任意的数字) : 当然 其实也不是大问题
|
g*******y 发帖数: 1930 | 9 赞!
bless lz~
linkedlist那题,没有说空间限制的话,先想到hash很正常!
sodoku那题用bitwise做比较方便。
最后一个用trie比较好 |
R***r 发帖数: 120 | 10 soduku用bitwise怎么做啊?大牛们可否稍微讲解一下? |
|
|
s****t 发帖数: 36 | 11 Sudoku 怎么用bitwise啊?
【在 g*******y 的大作中提到】 : 赞! : bless lz~ : linkedlist那题,没有说空间限制的话,先想到hash很正常! : sodoku那题用bitwise做比较方便。 : 最后一个用trie比较好
|
s****t 发帖数: 36 | 12 那个copy random pointer linklist的, 大家看看对不对啊?O(3N)~~ O(N)吧
/*
A contain data, next pointer, and random pointer, copy the A structure in
B
*/
struct node{
int data;
struct node* next;
struct node* random;
node(int value, node* n, node* r){
data = value;
next = n;
random = r;
}
}*llist;
void copyrandompointerlist(llist src, llist& dst){
// assume the first node doesn't use.
// src is the head pointer of A,
assert(src != NULL);
llist src_index, dst_index, temp;
src_in |
S******n 发帖数: 1009 | 13 thanks for sharing, good luck!
【在 d****l 的大作中提到】 : 听说过以前他们要电面两轮 : 不过没想到现在居然被安排到了一天 : 不过这样也好,挺省事的 : 现在的面试比较直接,上来就写程序 : 不用罗嗦,两个面试都这么一个情况 : 第一个人 : 1. 返回给定字符串的第一个不符合字母顺序的index : 比如abcdaf就需要返回第二个a的index,比如aZe就返回e的index : 反正题目不难,就是需要考虑的东西多一点 : 2. 检查sudoku的输入是valid,允许solution是不完全的
|
c**********e 发帖数: 2007 | 14
No need of binary search. It is very simple.
【在 S******A 的大作中提到】 : sudoku这个当场写code还蛮费时间的吧 col/row/3x3grid : 比如abcdaf就需要返回第二个a的index,比如aZe就返回e的index - binary search?
|
s******e 发帖数: 493 | 15 build a hashtable for alphabet, keep the current largest one for comparison. |
c**********e 发帖数: 2007 | 16 I do not feel your code is right. Of course, my idea may be
different from yours.
The approach is to create a list of A1->B1->A2->B2->...
in the first while loop. In the 2nd while loop, set the randon pointer
right. In the 3rd while loop, separate the two lists's by resetting
next pointer. What is your approach?
Alternatively, why not write a main() and test your code?
in
【在 s****t 的大作中提到】 : 那个copy random pointer linklist的, 大家看看对不对啊?O(3N)~~ O(N)吧 : /* : A contain data, next pointer, and random pointer, copy the A structure in : B : */ : struct node{ : int data; : struct node* next; : struct node* random; : node(int value, node* n, node* r){
|