由买买提看人间百态

topics

全部话题 - 话题: peek
首页 上页 1 2 3 4 5 6 7 8 9 10 下页 末页 (共10页)
z********c
发帖数: 72
1
来自主题: JobHunting版 - 面完G的电面了,忐忑
好吧,题目真心不难
两道要码的
1. Rotate r node to right: A->B->C->D->E->NULL, r = 2
D->E->A->B->C->Null
2. iterator has only bool hasNext () and T next() method, write a wrapper
for iterator, to support peek ()
t********e
发帖数: 143
2
来自主题: JobHunting版 - 面完G的电面了,忐忑
I deleted my original post. It is wrong. :)
I think we need to know how iterator is defined, i.e what interface function
it has.. A lot of iterators you can just deference it to get current value,
i.e. peek.
s********y
发帖数: 28
3
来自主题: JobHunting版 - 面完G的电面了,忐忑
谁能把这个peek的贴个code啊,还是没搞明白。谢谢
l********5
发帖数: 230
4
来自主题: JobHunting版 - 面完G的电面了,忐忑
所以需要两个iterator?一个比另一个快一步 然后取到下一个的值存到temp里然后
peek返回这个temp 这样吗?
z*******3
发帖数: 13709
5
来自主题: JobHunting版 - 面完G的电面了,忐忑
那就是预先取一个next值出来,寄存在class里面
然后设置hasNext()返回为true
next()的时候,再弹出当前这个,再预取一个出来寄存到现在这个class里面
class Wrapper{
private T tmp;
private boolean hasNext = false;
Wrapper(Iterator it){
if(it.hasNext()){
tmp = it.next();
hasNext = true;
}
}
public boolean hasNext(){return hasNext;}
public T peek(){return tmp};
public T next() throws Exception{
if(hasNext){
T t = tmp;
hasNext = it.hasNext();
i... 阅读全帖
z********c
发帖数: 72
6
来自主题: JobHunting版 - 说好得FG面经,回馈板上GGJJ
不知道什么要求。。我直接写的搜索然后优化成DP,他说很好
merge写了,那一场45分钟全部用来搞这个题了。。。。
补充一下电面题把:
F:
1. int strstr (const char *haystack, const char *needle),要你实现,
bruteforce就行
2. int strstr (const char *haystack[], const char *needle),意思就是haystack
太长了,然后一个串存不下,变成存个数组里, 把他们concatenate 以后就是
haystack,还是一样的要求,要你实现,不能有额外空间
3. 给一组字符串,按anagram分组,输出
G:
1. 找到ll里最后k个节点,把他们放到前面来
2. 那题在板上说过,一个iterator,有next和hasNext,现在要你加个wrapper,使得
支持peek操作
不少了哥。。。我问了那么多人绝对我写的码比他们都多。。
z*********8
发帖数: 2070
7
来自主题: JobHunting版 - 说好得FG面经,回馈板上GGJJ
peek 操作具体是什么?

haystack
r**d
发帖数: 316
8
来自主题: JobHunting版 - 2道面试题.
public void printEveryLeaf(Tree root) {
Stack backTrackStack = new Stack ();
Set visited = new HashSet ();
backTrackStack.push(root);
while (!backTrackStack.empty()) {
Tree n = backTrackStack.peek();
if ((n.left != null) && (!visited.contains(n.left))) {
backTrackStack.push(n.left);
visited.add(n.left);
continue;
}
if ((n.right != null) && (!visi... 阅读全帖
c****7
发帖数: 13
9
来自主题: JobHunting版 - G家实习电面总结
写了个第一题的DFS的非递归解法, 请高手多指教
public static TreeNode findDeepestNode(TreeNode root){
if(root ==null) return root;
int maxDepth = 1;
TreeNode deepestNode = root;
// The previous node we just traversed
TreeNode preNode=null;
// The top item in the stack
TreeNode curNode;
Stack nodeStack = new Stack();
nodeStack.push(root);
// exit until the stack is empty
while(!nodeStack.isEmpty())... 阅读全帖
b***m
发帖数: 5987
10
来自主题: JobHunting版 - 明天A家onsite
一点儿也不传奇。就是一普通面试。如果面的是CEO职位估计能传奇点儿。废话少说,
上面经(题都很传统):
第一轮面试是俩人,一个白人小伙子,一个印度女孩儿。写一个函数,输入是字符串,
输出是布尔值,判断字符串中括号的匹配,比如“()()()”、“((()))”是匹配的,“
()))”是不匹配的。扩展开,可以接受{}和[],甚至任何自定义符号。写完函数后提供
test case。
第二轮是个中年白人,明显是抓壮丁来的,没有技术面试,纯粹瞎扯,扯的过程中不断
看钟,口中念念有词这45分钟怎么打法。由于我做过10年游戏,于是跟他狂侃游戏开发
,包括怎么做到让游戏不crash,如何让游戏跑得更快、用更少的硬件资源。
第三轮是个development manager,印度人,不是HM,但是负责带我去吃中饭。我俩下
楼去附近的一家意大利店,一人买了一个三明治、一瓶可乐,然后回来在会议室边吃边
聊。基本行为问题居多,出了一个brainstorm题:用户在客户端浏览订单信息,页面狂
慢,怎么分析可能的原因?基本架构是:浏览器连load balancer(LB),LB连
application serve... 阅读全帖
F********9
发帖数: 44
11
来自主题: JobHunting版 - 明天A家onsite
design一个data structure,功能类似双
向queue,可以从front和end两端add、peek元素,以及用index i来随机访问队列中元
素,所有操作都必须是O(1)。
这个是要构造一个环来实现么?
c*****a
发帖数: 808
12
来自主题: JobHunting版 - largest rectangle in histogram

不用0和int[]的话,最后加上这些就可以啦
while(!stack.empty):
m = max(m,h[stack.pop]* (stack.empty() ? i : i-stack.peek()-1))
c*****a
发帖数: 808
13
来自主题: JobHunting版 - largest rectangle in histogram

不用0和int[]的话,最后加上这些就可以啦
while(!stack.empty):
m = max(m,h[stack.pop]* (stack.empty() ? i : i-stack.peek()-1))
w***o
发帖数: 109
14
来自主题: JobHunting版 - 一道二叉树的题
来一个不递归的:
boolean validate(int[] A) {
//int[] A = {4,3,2,1};

Stack s = new Stack();
int max = Integer.MAX_VALUE;
for(int i = A.length - 1; i >= 0; i--) {
int x = A[i];
if(x > max) {
return false;
}
while(!s.empty() && x < s.peek()) {
max = s.pop();
}
s.push(x);
}
return true;
}
n****r
发帖数: 120
15
可以过
public class Solution {

public static class Bar{
int height, startIdx;
Bar(int h, int i){ height = h; startIdx = i; }
}
public int maximalRectangle(char[][] matrix) {
if (matrix.length == 0 || matrix[0].length == 0) return 0;
int n = matrix.length, m = matrix[0].length;
int[][] aux = new int[n][m];

for (int i=0; i aux[0][i] = matrix[0][i] - '0';
}
for (int i=1; i ... 阅读全帖
c*****a
发帖数: 808
16
来自主题: JobHunting版 - iterator 实现 如何 peek(),pop()?
pop了2, 3不见了?
t*********h
发帖数: 941
17
来自主题: JobHunting版 - iterator 实现 如何 peek(),pop()?
have a tmp variable to next element?
h*********o
发帖数: 230
18
来自主题: JobHunting版 - iterator 实现 如何 peek(),pop()?
呵呵 typo
改过来了
h*********o
发帖数: 230
19
来自主题: JobHunting版 - iterator 实现 如何 peek(),pop()?
不知道是不是stack啊,给的例子就是这样,
像是数组啥的。。
j*****y
发帖数: 1071
20
来自主题: JobHunting版 - iterator 实现 如何 peek(),pop()?
二爷这个iterator 和 stack 好像是一样的?
class iterator == class stack ?
p*****2
发帖数: 21240
21
来自主题: JobHunting版 - iterator 实现 如何 peek(),pop()?

iterator 是immutable的吧?
j*****y
发帖数: 1071
22
来自主题: JobHunting版 - iterator 实现 如何 peek(),pop()?
何为 immutable ? sorry :)
p*****2
发帖数: 21240
23
来自主题: JobHunting版 - iterator 实现 如何 peek(),pop()?

我记得只能iterate不能改变吧
j*****y
发帖数: 1071
24
来自主题: JobHunting版 - iterator 实现 如何 peek(),pop()?
这样的话,你这里的 iterator 也提供了 pop()操作,也是改变了,是吧?
p*****2
发帖数: 21240
25
来自主题: JobHunting版 - iterator 实现 如何 peek(),pop()?

数组没有被改变。还可以reset
j*****y
发帖数: 1071
26
来自主题: JobHunting版 - iterator 实现 如何 peek(),pop()?
明白了,你的这个 iterator就是一个没有 push操作的 stack, 是吧?
p*****2
发帖数: 21240
27
来自主题: JobHunting版 - iterator 实现 如何 peek(),pop()?

感觉iterator和stack还不是一回事。
不过这个题目的定义比较confusing
应该是hasNext, next比较好。
e****e
发帖数: 418
28
写了一个infix to postfix,实现起来简单, 不知道思路还真不好想,面试的时候我肯
定想不出来。逆波兰表达式(postfix)evaluation是常见题,我就不贴了.
public List toPostfix(String[] in) {
List pf = new ArrayList();
Stack stack = new Stack();
for ( String s : in ) {
int p = getPrecedence( s );
if ( p == 0 )
pf.add( s );
else if ( stack.empty() )
stack.push( s );
else {
while( !stack.isEmpty() && getPrecedence( stack.peek() ) >= p )
pf.add( ... 阅读全帖
e****e
发帖数: 418
29
写了一个infix to postfix,实现起来简单, 不知道思路还真不好想,面试的时候我肯
定想不出来。逆波兰表达式(postfix)evaluation是常见题,我就不贴了.
public List toPostfix(String[] in) {
List pf = new ArrayList();
Stack stack = new Stack();
for ( String s : in ) {
int p = getPrecedence( s );
if ( p == 0 )
pf.add( s );
else if ( stack.empty() )
stack.push( s );
else {
while( !stack.isEmpty() && getPrecedence( stack.peek() ) >= p )
pf.add( ... 阅读全帖
j**7
发帖数: 143
30
来自主题: JobHunting版 - 微软onsite SDET 面经
第三题的答案:
public class InfixToPostfix {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
String infix="4*((5+6)*7";
infix="3+(1*2)";
String postfix=toPostfix(infix);
System.out.println(postfix);
System.out.println(evaluate(postfix));
}

//evaluate a postfix equation
static int evaluate(String postfix)
{
Stack st=new Stack阅读全帖
e***s
发帖数: 799
31
来自主题: JobHunting版 - careercup一道amazon的面试题
我不懂了
按楼主说的一个HashMap,一个MinStack,一个MaxStack
deleteMin的时候,不就是map.remove(MinStack.pop())吗?
下一个最小的不就在MinStack.peek()吗?
要判断的是如果MinStack和MaxStack都只剩一个元素了(第一个插入的元素会push到两
个Stack中),要两个Stack都pop。
n*****g
发帖数: 16
32
来自主题: JobHunting版 - F面经
My version for C#.
static bool IsValidExpression(string expression)
{
Stack stackOperator = new Stack();
Stack stackOperand = new Stack();
int length = expression.Length;
int i;
char opr;
for (i = 0; i < length; ++i)
{
if (expression[i] == '(' || expression[i] == '+' ||
expression[i] == '-' || expression[i] == '*' || expression[i] == '/')
{
... 阅读全帖
n*****g
发帖数: 16
33
来自主题: JobHunting版 - F面经
My version for C#.
static bool IsValidExpression(string expression)
{
Stack stackOperator = new Stack();
Stack stackOperand = new Stack();
int length = expression.Length;
int i;
char opr;
for (i = 0; i < length; ++i)
{
if (expression[i] == '(' || expression[i] == '+' ||
expression[i] == '-' || expression[i] == '*' || expression[i] == '/')
{
... 阅读全帖
y***5
发帖数: 21
34
结果:面试7家,5 onsite,3 offer。
面经:
Amazon:2轮电面,5轮onsite。2天后offer,最后decline,非常nice的manager(拿到
A offer时还在面其它公司,比较大度地祝我good luck),拒绝的时候感情上比较难受。
电面1,设计parking lot
2, intersection of sorted int array; design data structure for a phone
contact book
onsite 1: find biggest int in array,
find K biggest int in array(tradeoff between many methods),
implement using heap
2: print modification path from "head" to "tail", given isWord()
api and every time can modify 1 word in the strin... 阅读全帖
n****r
发帖数: 120
35
public int maxDepth(TreeNode root) {
if (root == null) return 0;
if (root.left == null && root.right == null)
return 1;
return 1 + Math.max(maxDepth(root.left), maxDepth(root.right));

}
public int maxDepth(TreeNode root) {
Stack stack = new Stack();
TreeNode x = root, prev = null;
int maxDepth = 0;
while (x != null || !stack.isEmpty()){
while (x != null){
stack.push(x);
x = x.left;
}
maxDe... 阅读全帖
x****8
发帖数: 127
36
来自主题: JobHunting版 - MS onsite面经
stack?
public static void main(String[] args) {

XmlParser p = new XmlParser("ABDC");
String s;
Stack> stk = new Stack>();
TreeNode root = null;// = new TreeNode();
while((s = p.getNextTag()) != null){
if(p.isStartTag()){
String str = p.getNextTag();//assert is string tag
TreeNode node = new TreeNode(str);
... 阅读全帖
s*******n
发帖数: 305
37
来自主题: JobHunting版 - [leetcode] Maximum Depth of Binary Tree
public int heightIterativeDFS() {
if (root==null) return 0;

Stack stack = new Stack();
stack.push(root);
int height=0;
TreeNode prev = null;

while(!stack.isEmpty()) {
TreeNode current=stack.peek();

if (prev==null || prev.left==current || prev.right==current) {
if (current.left!=null) stack.push(current.left);
else if (current.right!=null) stack.p... 阅读全帖
s*******n
发帖数: 305
38
来自主题: JobHunting版 - 求解一道很难的算法面试题
用heap, nlogk
// T(nlgk), S(k+lgk)
public static void heapWay1(int[] num, int k) {
PriorityQueue heap = new PriorityQueue(k);
int size = k;
for (int i=0; i if (heap.size() heap.offer(num[i]);
else { // reach the size==k
if (num[i]<=heap.peek()) // smaller than root
continue;
else { // remove root, insert new one
... 阅读全帖
l*n
发帖数: 529
39
来自主题: JobHunting版 - G电面的一个题
每个时间段还有找最大的要求,应该会比O(nolgn)要稍大。
class Record {
int start;
int end;
int vol;
public Record(int s, int e, int vol) {
assert (s < e);
this.start = s;
this.end = e;
this.vol = vol;
}
}
class Point {
int time;
boolean isStart;
Record rec;
public Point(int time, boolean isStart, Record rec) {
this.time = time;
this.isStart = isStart;
this.rec = rec;
}
}
ArrayList loudestVol(Record[] varr) {
assert (v... 阅读全帖
l*n
发帖数: 529
40
来自主题: JobHunting版 - G电面的一个题
class Record {
int start;
int end;
int vol;
public Record(int s, int e, int vol) {
assert (s < e);
this.start = s;
this.end = e;
this.vol = vol;
}
}
class Point {
int time;
boolean isStart;
Record rec;
public Point(int time, boolean isStart, Record rec) {
this.time = time;
this.isStart = isStart;
this.rec = rec;
}
}
ArrayList loudestVol(Record[] varr) {
assert (varr != null);
ArrayList阅读全帖
b*****6
发帖数: 179
41
来自主题: JobHunting版 - 小弟求问LinkedIn那道Deep Iterator的题
我也被问过这个问题,当时没写好,现在再写一个:
public class DeepIterator {
private Stack stack;
public DeepIterator(List list) {
stack = new Stack();
stack.push(list);
advanceToNext();
}
public boolean hasNext() {
return !stack.isEmpty();
}
public int next() {
if (!hasNext())
throw new RuntimeException("no next");
int result = (Integer) stack.pop();
advanceToNext();

return result;
}
... 阅读全帖
b*****6
发帖数: 179
42
来自主题: JobHunting版 - 小弟求问LinkedIn那道Deep Iterator的题
我也被问过这个问题,当时没写好,现在再写一个:
public class DeepIterator {
private Stack stack;
public DeepIterator(List list) {
stack = new Stack();
stack.push(list);
advanceToNext();
}
public boolean hasNext() {
return !stack.isEmpty();
}
public int next() {
if (!hasNext())
throw new RuntimeException("no next");
int result = (Integer) stack.pop();
advanceToNext();

return result;
}
... 阅读全帖
J*****a
发帖数: 4262
43
来自主题: JobHunting版 - linkedin,rocketfuel, google面经若干
楼主第一题的思路是对的,即“左向右扫描,若左边一位比右边一位大,则删除左边,
以此循环,如果最后还有删除名额,则删最后几位”。只是复杂度不是最优而已
你上来就说人家“不对”,欠考虑吧,况且你一开始给出的解复杂度不比楼主的低
这题根本不用deque,用个stack即可
而且0为什么不能放第一位?1023,k=1删除第一位即可,得到23,为最小,用以下方法
根本无需特殊处理
public int getSmallest(String input, int k){
if(input == null || k > input.length()) return null;
Stack s = new Stack();
for(int i = 0; i < input.length(); i++){
while(!s.isEmpty() && s.peek() > input.charAt(i) && k-- > 0) s.pop();
s.push(input.charAt(i));
}
... 阅读全帖
c**w
发帖数: 1024
44
来自主题: JobHunting版 - 新鲜G面经
刚才HR来信,已挂。背景: fresh 100+烂校 master, GPA 3.6+。
特上面经:
1. 一个2d的黑白棋盘,黑色的格子都是连在一起的,现在给一个黑色的格子的坐标,
请找出最小的矩形,包含所有的黑色格子
2. Implement Iterator接口,但是增加一个功能,peek()返回next()的值,但是不能
移动pointer。 constructor已经指定,就是 PeekIterator(Iterator iter)
这题有个special case需要考虑
然后就是原题,maxSubArr()
3. 一个特殊的binary tree,叫full tree,定义是每个节点要么有2个children,要么
没有。现在我们要copy一个给定full tree的形状,请写encode和decode方法
4. 检查()序列对是否正确;
follow up 1: 如果有三种 ()[]{}怎么办
follow up 2: "()()(" double quote里面的ignore,如何判断
总结,当天晚上差不多12:00到酒店,大概2点才上床,早上起床眼睛全... 阅读全帖
g*****g
发帖数: 212
45
来自主题: JobHunting版 - 新鲜G面经
第二题,似乎就是用一个private变量 cur 保存一个当前value就好了。
每次call next的时候,替换当前 cur,直到 null
call peek 返回 cur
hasnext 返回 cur != null
第四题 没看到follow up 2。。。
s*******z
发帖数: 83
46
来自主题: JobHunting版 - 新鲜G面经
peek iterator那个有什么陷阱吗?
太弱了吗, 怎么觉得楼上几位说的就可以做了~~~
g*****g
发帖数: 212
47
来自主题: JobHunting版 - 新鲜G面经
我是针对我之前贴的算法(在下面)说的
如果有null 会失败,
其实考虑这个case,除了保存一个cur之外,保存一个bool的hasnext就好了
----
第二题,似乎就是用一个private变量 cur 保存一个当前value就好了。
每次call next的时候,替换当前 cur,直到 null
call peek 返回 cur
hasnext 返回 cur != null
---
q********c
发帖数: 1774
48
peek()告诉你是头还是尾吗,还是只返回那个元素?
f*****e
发帖数: 2992
49
是不是必须从头开始复制?可以先peek n 遍知道头尾什么元素,再压一个INT_MAX。
l********3
发帖数: 33
50
从哪里复制没有规定,只要生成的array和quack里面的信息一样就行。
比如说1,2,3,4,5
peek n 次得到的元素就是1,或者5. 可能一直都是5,怎么得到int_max尼
不知道我是不是看懂你的思路了
首页 上页 1 2 3 4 5 6 7 8 9 10 下页 末页 (共10页)