s********i 发帖数: 74 | 1 你这个方法原理上跟我的是一样的。
不同的是你这个方法需要事先知道数组大小。
而且你这个里面也用不着peek,第一个peek没用,第二次的peek换成pop是一样的。 |
|
l********3 发帖数: 33 | 2 刚经历了google的电面,深刻感到自己思路不够开阔,遇到没见过的题完全无从下手,
所以想请教版上的同学有什么书籍适合面试准备。 本人使用java,只做过leetcode和
cc150
闲话不说,上面经:
前两天面的。三哥面试官
面试开始,直接上题。给了一个Quack的类,里面有三个方法:
pop(): 随机从头或者尾扔出一个元素;
peek(): 随机看头或者尾的一个元素,peek()之后pop()的话一定会pop()出peek()的那
个元素;
push():向尾部插入一个元素
问题是:给一个排序好的Quack,怎么把里面的元素原封不动的放到一个Array里面。
follow-up:如果quack里面有重复的元素,怎么处理
拿到题之后,完全没思路,基本是在面试官的指导下才做出来的。而且follow-up的题
目也没想到该怎么做。最后只写了没有重复元素的代码。
希望对大家有用,祝大家能拿到称心的offer。 |
|
g*****y 发帖数: 1120 | 3 两指针一个指array头一个指尾,
Peek
Pop
Peek
如果pop出来的数比第二次peek的大,放数组尾,尾指针前移,否则放数组头,头指针
后移。 |
|
s********i 发帖数: 74 | 4 你这个方法原理上跟我的是一样的。
不同的是你这个方法需要事先知道数组大小。
而且你这个里面也用不着peek,第一个peek没用,第二次的peek换成pop是一样的。 |
|
f******h 发帖数: 45 | 5 也找工作了一段时间了,从版上学了很多,上周G家面完了,求个bless。
之前的一些都挂了,还在继续找其他的。等定下来之后一定发面经回报本版。
谢谢大家啦!!
1. http://www.mitbbs.com/article_t/JobHunting/32005597.html
1) Implement a simple calculator (+,-,*,/);
2) Implement "+1" for a large integer;
3) How to match Ads to users;
4) How to extract useful information from a forum webpage (list all
kinds of useful signal you can think of)
5) How to detect the duplicate HTML pages (large scale);
6) Find all the paths between two places on Google map;
7)... 阅读全帖 |
|
x******0 发帖数: 178 | 6 虽然是老题,但是写起来还是很费劲,唉。。
public static ArrayList SlidingWindowMax(int[] arr, int windowSize){
//edge case
ArrayList res = new ArrayList();
ArrayDeque indexQ = new ArrayDeque();
for (int i = 0; i < windowSize; i++){
while (!indexQ.isEmpty() && arr[i] > indexQ.getLast()){
indexQ.pollLast();//only keep possible max
}
indexQ.add(i);
}
for (int i... 阅读全帖 |
|
s****i 发帖数: 65 | 7 或者
public void pop() {
if (st.peek().equals(min.peek())) {//改成equals
min.pop();
}
st.pop();
}
查看peek() return的是Object类对象 |
|
h*****y 发帖数: 298 | 8 recursion比较robust但是短时间内不好写. 因为你没有可以用的语法树,所以要花力
气来tokenize. 只有用Stack才有希望在规定时间里写完,虽然这样的程序完全没有用。
public class EvalExpression {
private Stack results = new Stack();
private Stack operators = new Stack();
private Stack |
|
|
l*********e 发帖数: 5385 | 10 ☆─────────────────────────────────────☆
wdyygmj (wdyygmj) 于 (Thu Jul 4 19:31:36 2013, 美东) 提到:
总结了一下,大概有如下症状
不管怎么样,明天打电话给EI做评估,希望没事
No response to call or instructions
Little and short eye contact
Not interested in and no interaction with peers
Shaking head
Staring at his hands front and back
Teeth grinding
Likes hitting table with left hand
Bangs his head against wall or ground, especially when unhappy
Suddenly puts his head and ear to ground for 1-2 seconds (since sleeping on
tummy at 12 ... 阅读全帖 |
|
|
m**k 发帖数: 18660 | 12 10分warmup (包括最后一点push - only to 160)
然后拉伸一下
第一个interval peek 160
第二个 peek 167
第三个 peek 173
第四个 到了大概 177/178. 就突然按stop了。
.. |
|
m**d 发帖数: 21441 | 13 QBASIC - Statements
命令:
BEEP, BLOAD, BSAVE, CALL, CHAIN, CHDIR, CIRCLE, CLEAR, CLOSE, CLS, COLOR,
COM, COMMON, CONST, DATA, DATE$, DECLARE, DEF, DEFDBL, DEFINT, DEFLNG,
DEFSNG, DEFSTR, DIM, DO, DRAW, END, ENVIRON, ERASE, ERROR, EXIT, FIELD,
FILES, FOR, FUNCTION, GET, GOSUB, GOTO, IF, INPUT, IOCTL, KEY, KILL, LET,
LINE, LINE INPUT, LOCATE, LOCK, LPRINT, LSET, MID$, MKDIR, NAME, ON, OPEN,
OPTION, OUT, PAINT, PALETTE, PCOPY, PEN, PLAY, POKE, PRESET, PRINT, PSET,
PUT, RANDOMIZE, READ, REDIM, REM, ... 阅读全帖 |
|
t*o 发帖数: 2606 | 14 【 以下文字转载自 NextGeneration 讨论区 】
发信人: two (two), 信区: NextGeneration
标 题: ***** 玩具列表 for 0- 12 month baby *****
发信站: BBS 未名空间站 (Wed Oct 6 16:01:05 2010, 美东)
[早就答应Mola写这个单子的,一直拖到现在,很抱歉.hehe]
3到6个月这个范围太小了,我想了想,就写了个
toys for 0- 12 month baby
这是我总结的单子.
玩具吗, 和其他任何东西一样, 总是有人喜欢有人不喜欢, 所谓众口难调啊.
所以,我就重点介绍一些比较流行, 普遍 review比较好的.
============== Music Mobile 系列:
这个Tiny Love Sweet Island Dreams Mobile 非常不错
http://www.amazon.com/Tiny-Love-Island-Dreams-Mobile/dp/B00198PQHY?s=baby-products&ie=UTF8&tag=amazon_hr-... 阅读全帖 |
|
s********0 发帖数: 71 | 15 不论是患有学者症候群亦或天赋异禀的人,他们都拥有令人目瞪口呆的绝技。而大多数
的伟大学者都拥有一个共同的技能:惊人的记忆力。
KIM PEEK
他是雨人的原型。Peek 不仅能够同时阅读两页文章(一边眼睛看一页),还能够马上
记住它们。大脑里存着超过12000本书的他就是一本活生生的百科全书。直到2009年他
去世时,他依旧能够背出电话簿上大多数的号码。
STEPHEN WILTSHIRE
作为一名自闭症患者,Wiltshire 在八岁就能够绘制建筑。当他成年之后,他便能仅凭
记忆,描绘出城市的蓝图。他曾经一次坐飞机。沿着泰晤士河飞行了15分钟,之后他就
精确地绘制出接到,建筑,河流的俯视图。
LESLIE LEMKE
他出生时就双目失明,而口头的智力测试也仅为58。 但是到了他14岁的时候,有一天
,他们家在看一部电影。电影中播放了一首柴可夫斯基的钢琴协奏曲。几个小时后,
Lemke 的母亲被音乐声唤醒,却发现他的孩子正在演奏这首曲子。现在, Lemke已经在
多国开展巡演,他能够仅凭记忆演奏上千首曲目。
FLO AND KAY LYMAN
这是对患有学者症候群的同卵双胞胎。他们能够... 阅读全帖 |
|
v*******n 发帖数: 8995 | 16 现在西部上午十一点,
头条是说了几天的美东大雪,第二条,macy不放气球了。
breaking news 哪????
昨天b52到贼快的。妈的连obama的火鸡都有个link。。。。。
THE LATEST
9 tips for holiday travel survival
Parents held girls captive for months
CBS puts Lara Logan on leave CBS puts Lara Logan on leave
Logan's Benghazi story discredited
Small firms can't use Obamacare site
'Knockout' victim: 'Whole group laughed'
Big airline merger gets go-ahead
Berlusconi kicked out by Senate
Jessica Ridgeway's killer: I lied to her
Parenting book blamed for deaths Parenting b... 阅读全帖 |
|
f******o 发帖数: 2469 | 17 中国怕啥 是美国怕好不好
The Silly Reason the Chinese Aren't Allowed on the Space Station
Welcome home: Nie Haisheng is helped out of his Shenzhou 10 spacecraft
after a 15-day mission in 2013.
Welcome home: Nie Haisheng is helped out of his Shenzhou 10 spacecraft after
a 15-day mission in 2013. AFP/Getty Images
BY JEFFREY KLUGER
MAY 29, 2015
IDEAS
Kluger is Editor at Large for TIME.
Geopolitics can be child’s play—literally. How else would you describe the
did-not! did-too! brawl that can result when one co... 阅读全帖 |
|
B*V 发帖数: 3365 | 18 现在西部上午十一点,
头条是说了几天的美东大雪,第二条,macy不放气球了。
breaking news 哪????
昨天b52到贼快的。妈的连obama的火鸡都有个link。。。。。
THE LATEST
9 tips for holiday travel survival
Parents held girls captive for months
CBS puts Lara Logan on leave CBS puts Lara Logan on leave
Logan's Benghazi story discredited
Small firms can't use Obamacare site
'Knockout' victim: 'Whole group laughed'
Big airline merger gets go-ahead
Berlusconi kicked out by Senate
Jessica Ridgeway's killer: I lied to her
Parenting book blamed for deaths Parenting boo... 阅读全帖 |
|
l****z 发帖数: 29846 | 19 June 27, 2012 by Warner Todd Huston
At around 130 days until Election Day, National Public Radio thought it
would be nice to give the President a little boost by going back to its 2008
practice of assigning to Obama the god-like powers of The One, The Light
Bringer, The Obammessiah.
This time tax dollar supported NPR thought it would be nice to air the claim
that the mere sound of Obama’s voice can part the clouds, stop that
depressing ol’ rain, and bring out the sun. No, really.
On Tuesday, J... 阅读全帖 |
|
|
b*******s 发帖数: 26 | 21 【 以下文字转载自 NewYork 讨论区 】
发信人: babygrass (草儿), 信区: NewYork
标 题: 物品出让:宝宝用品
发信站: BBS 未名空间站 (Mon Jun 11 12:49:10 2012, 美东)
我家宝宝的一些东西,现在大了,都用不了了,准备转让.大部分购于2011年,状态都很
好。有的只用过两三次。有兴趣请站内短信,多买价格可以商议.
1. Baby Trend Double Snap N Go & two Graco snugride carseats $130
Snap&Go 只用过几次,Carseats 也几乎只用于regular doc visits
2. Fisher Price Newborn to Toddler Rocker $25 each, $40 for two
http://www.amazon.com/Fisher-Price-Newborn-To-Toddler-Portable-
3. Fisher Price Precious Planet Khaki Sands Jumperoo $40
http://www... 阅读全帖 |
|
n*****g 发帖数: 16 | 22 你说的第一条我post帖子后就发现了,第二条我没有注意到。多谢指正!下面是新的
code。好像两个连续的一样的while有点怪,可以把外面的转为do while。
void PrintTreeLevelZigZag(Node* root)
{
Stack *currentStack = new Stack();
Stack *nextStack = new Stack();
Stack *tempStack;
bool bLeftToRight = true;//the print order of the current level is from
left to right if it is true.
Node *newNode;
if(root)
currentStack->Push(root);
while(currentStack->Peek() != NULL)
{
while(currentStack->Peek() != NULL)
{
|
|
i**********e 发帖数: 1145 | 23 nicheng,
你的currentStack->peek()是什么意思呀?
peek()是询问最top element的意思吗?
from |
|
j*****u 发帖数: 1133 | 24 写了个非递归的
void SetSibling(TreeNode root)
{
if (root == null) throw ArgumentNullException("root");
Queue queue = new Queue();
TreeNode splitter = null; // indicates layer ends
queue.Enqueue(root); queue.Enqueue(splitter);
while (queue.Count > 1)
{
TreeNode node = queue.Dequeue();
foreach (TreeNode child in node.Children)
queue.Enqueue(child);
if (queue.Peek() != splitter)
node.Next = queue.Peek(); // set sibling
... 阅读全帖 |
|
d****2 发帖数: 12 | 25 shouldn't this be simpler by just using an array based stack, so that you
don't have to maintain link node and allocate new memory? A c++ version:
void MovingWindowMax(int* a, int n, int w, int* b)
{
Stack* stack = new Stack(w); //an array implementation of stack.
max capacity is w at any time.
for(int i=0; i
{
while(!stack.Empty() && stack.Peek() < a[i])
stack.Pop();
stack.Push();
if(i
continue;
b[i-w+1] = s... 阅读全帖 |
|
h**********d 发帖数: 4313 | 26 1.如果是full tree,可以用递归
2.如果不是full tree,笨办法用level-order traversal遍历,同时把当前节点next指
向queue.peek(),复杂度O(N)
写个java版本
void populate(TreeNode root){
if(root == null)return;
Queue queue = new Queue();
queue.put(root);
Node node;
int thisLevel = 1; int nextLevel = 0;
while(!queue.isEmpty()){
node = queue.pop();
thisLevel--;
if(thisLevel != 0){
node.setNextRight(queue.peek());
}
if(node.getLeft() != null){
queue.put(node.getLeft());
nextLe... 阅读全帖 |
|
g**********y 发帖数: 14569 | 27 Find Largest Rectangle in Histogram, 这是众所周知的一个题。下面的实现里有一
个bug, 请找出来。
public int maxRectangle(int[] a) {
int max = 0;
Stack s = new Stack();
for (int i=0; i
Node node = new Node(i, a[i]);
if (s.isEmpty()) {
s.push(node);
continue;
}
Node top = s.peek();
if (top.value < a[i]) {
s.push(node);
}
el... 阅读全帖 |
|
g**********y 发帖数: 14569 | 28 赞!我是把test case输入错了,才发现的 :)
本来test case是4 5 1 3 3, 输出是8
结果我输成了 4 5 3 3, 程序输出8,我一想,不对啊,应该是12。才意识到是个bug。
原文解释很清楚,但是我第一次没看太明白。看网上一篇中文解释,想明白了。等到自
己写code,才发现,那篇中文解释有问题,code也有问题。
看来我最能理解的,还是bug。
BTW, 最简单的改法:加一句, node.x = prev.x
程序如下:
public int maxRectangle(int[] a) {
int max = 0;
Stack s = new Stack();
for (int i=0; i
Node node = new Node(i, a[i]);
if (s.isEmpty()) {
s.push(node);
continue;
}
Node top = s.peek();
if (top.value < a[i]) {
s.push(node);
}
else if (top.value >... 阅读全帖 |
|
a********d 发帖数: 195 | 29 恩,确实是min stack一样,
void enqueue(Node myNode)
{
if(isGreaterThanPrevious(myqueue.peek(),myNode))
{
myNode.CurrnetMax=myNode.Data;
}
else
{
myNode.CurrnetMax=myqueue.peek().Data;
}
myqueue.enqueue(myNode);
}
//dequeue一个意思。 |
|
l****p 发帖数: 397 | 30 两通电话,每个45min,到最后两个都超时
第一通电话:
1、指定我简历中的一篇一作文章,让我描述那文章里的内容
2、如何从一个只含有ASCII字符的字符串中找出最频繁的字符
我说用哈希表记录每个字符出现次数,然后他又补充问到哈希表是怎么工作的,我说包
括哈希函数和冲突处理两部分,并简述了一下,说由于字符不太多,可以用链表处理冲突
3、如果这个字符串含有32位Unicode字符的串,如何修改之前的算法
我说为了节省空间,可以把冲突处理方式改成rehashing
4、如果一个同事提出用一个array来记录各个字符的次数,比较你的算法和该同事算
法的优劣
很明显,他出这个题是期望我在第2问中说用array来记录,然后第3问再让我改成
hash,结果我第二问直接就用hash了。我说时间上差不多,但是用于处理ASCII时,
array比较省空间,处理Unicode时,hash比较省空间
5、如果这个字串数据量很大,而且分布在多台机器上,同时由于带宽限制,不能把整个
hash在多台机器中传输,怎么办?
这题没答上来,花了很长时间,后来先下一题的代码,然后还有时间,继续回答这题,最终还是没答
上来... 阅读全帖 |
|
c*****e 发帖数: 3226 | 31 哦,对的。不过还是觉得扫描2次这个方法很蠢。
搜了一下,网上有别的解法,而且通过了leetcode online judge.
public static int longestValidParentheses(String s) {
Stack stack = new Stack();
int len = 0;
int maxLen = 0;
int startIndex = s.length();
for(int i = 0; i < s.length(); ++i) {
if(s.charAt(i) == '(') {
stack.push(i);
continue;
}
if(stack.isEmpty()) {
startIndex = s.length();
} else {
... 阅读全帖 |
|
c*****e 发帖数: 3226 | 32 哦,对的。不过还是觉得扫描2次这个方法很蠢。
搜了一下,网上有别的解法,而且通过了leetcode online judge.
public static int longestValidParentheses(String s) {
Stack stack = new Stack();
int len = 0;
int maxLen = 0;
int startIndex = s.length();
for(int i = 0; i < s.length(); ++i) {
if(s.charAt(i) == '(') {
stack.push(i);
continue;
}
if(stack.isEmpty()) {
startIndex = s.length();
} else {
... 阅读全帖 |
|
h*****y 发帖数: 218 | 33 在网上发现这个最大直方图求面积的题目的解答,有一个地方没看明白
http://www.sureinterview.com/shwqst/1117001
下面这个代码的stack为什么有一个get的方法?
if (prev.height > stk.get(stk.size() - 2).height) {
======================================================================
public long getMaxArea(int[] histogram) {
long maxArea = 0;
if (histogram == null || histogram.length == 0)
return maxArea;
Stack- stk = new Stack
- ();
stk.push(new Item(Integer.MIN_VALUE, -1));
for (int i = 0; i <... 阅读全帖 |
|
z********c 发帖数: 72 | 34 现在有一个容器的iterator,支持
bool hasNext () 是否还有元素
T next () 取出下个元素,并迭代器后移
现在要你写一个wrapper类
class wrapper {
wrapper (iterator it);
bool hasNext ()
T next ()
T peek ()
}
以一个iterator为构造函数,在支持hasNext和next的同时,添加peek (),即查看下一
个元素的值,但迭代器不后移 |
|
b***y 发帖数: 76 | 35 贴个我的代码,请大牛们帮忙纠错
PeekIterator implement Iterator {
Iterator iter;
Object curr;
PeekIter(Iterator iter){
iter = iter;
if (iter.hasNext()) curr = iter.next();
else curr = null;
}
Object next() throws Exception{
Object output = peek();
curr = iter.next();
return output;
}
boolean hasNext() {
return curr == null;
}
Object peek() {
return curr;
}
} |
|
t**********h 发帖数: 2273 | 36 public static void main(String[] args){
Node n1 = new Node(1);
Node n2 = new Node(2);
Node n3 = new Node(3);
Node n4 = new Node(3);
Node n5 = new Node(3);
Node n6 = new Node(4);
Node n7 = new Node(4);
Node n8 = new Node(5);
n1.next = n2;
n2.next = n3;
n3.next = n4;
n4.next = n5;
n5.next = n6;
n6.next = n7;
n7.next = n8;
Node result = remove(n... 阅读全帖 |
|
S*****e 发帖数: 229 | 37 two sigma
先是coding test,题目在glassdoor上有,虽然不难但是也得小心。他们家onsite时间
很长,4个人面一人一个半小时,有很多behavior问题,体力和耐心要好。只说技术题了
第一次onsite:
1. find cubic root of a number
2. 10个硬币,有一个硬币两面都是head,现在随机抽了一个硬币,投了一次发现是
head,问抽到的是坏硬币的概率
3. given a set, find all subsets
4. linear regression, integration of gaussian, max heap insertion and
deletion ….
5. how to design a web server that monitors the usage of backend servers and
display results
6. 记得有个同学说过的题,有两个矿A,B,有2n个工人,每个工人在A和B中挖矿的效
率不同,由两个数组给出。如果必须要有n个工人在A,n个工人在B里面,问如何使效率
最... 阅读全帖 |
|
K*******i 发帖数: 399 | 38 二叉树,每个node有个指向parent指针,找lowest common ancestor,要求O(1)
memory, O(n) time。
如果树平衡,不是O(logn) time么?
现在要写一个decorator,里面有一个T peek()函数,它返回的是当前指向的数据,如
果反复call它,它应该回复一样的数(如果call next()再用peek(),返回的就是
下一个数据)
这个好像是某牛G的电面也有问到,正解的思路是什么? |
|
S*****e 发帖数: 229 | 39 two sigma
先是coding test,题目在glassdoor上有,虽然不难但是也得小心。他们家onsite时间
很长,4个人面一人一个半小时,有很多behavior问题,体力和耐心要好。只说技术题了
第一次onsite:
1. find cubic root of a number
2. 10个硬币,有一个硬币两面都是head,现在随机抽了一个硬币,投了一次发现是
head,问抽到的是坏硬币的概率
3. given a set, find all subsets
4. linear regression, integration of gaussian, max heap insertion and
deletion ….
5. how to design a web server that monitors the usage of backend servers and
display results
6. 记得有个同学说过的题,有两个矿A,B,有2n个工人,每个工人在A和B中挖矿的效
率不同,由两个数组给出。如果必须要有n个工人在A,n个工人在B里面,问如何使效率
最... 阅读全帖 |
|
K*******i 发帖数: 399 | 40 我已经是第N次在不同的面经里看到这道题出现了。
这题到底想考察什么(设计模式还是算法?),有什么trick?
template class iterator {
bool hasNext();
T next();
}
现在要写一个decorator(wrapper),里面有一个T peek()函数,它返回的是当前指向的
数据,如果反复call它,它应该回复一样的数(如果call next()再用peek(),返
回的就是下一个数据) |
|
y*****n 发帖数: 243 | 41 在决定新元素m是否要放入辅助数组s的时候用 if(s.peek() >= m) 不用if(s.peek() >
m)这样有重复的也会被放到stack里去。 可以么? |
|
c*****a 发帖数: 808 | 42 这个时灵时不灵,有时候能过,有时候不能过.....
Run Status: Accepted!
Program Runtime: 840 milli secs
public class Solution {
public int maximalRectangle(char[][] matrix) {
// Start typing your Java solution below
// DO NOT write main() function
if(matrix.length <=0 )
return 0;
int col=matrix[0].length;
int[] ar = new int[col];
int max=0;
for(int i=0; i
for(int j=0; j
if(matr... 阅读全帖 |
|
s****0 发帖数: 117 | 43 package myutil;
import java.util.Scanner;
import java.util.Stack;
public class ParseExp {
Stack oprand = new Stack();
Stack oprator = new Stack();
static int[] code = new int[256];
static {
code['+'] = 10;
code['-'] = 11;
code['*'] = 20;
code['/'] = 21;
code['^'] = 30;
code['$'] = 0;
code['('] = 100;
code[')'] = 1;
}
public ParseExp() {
}
public Integer parse(String... 阅读全帖 |
|
s****0 发帖数: 117 | 44 package myutil;
import java.util.Scanner;
import java.util.Stack;
public class ParseExp {
Stack oprand = new Stack();
Stack oprator = new Stack();
static int[] code = new int[256];
static {
code['+'] = 10;
code['-'] = 11;
code['*'] = 20;
code['/'] = 21;
code['^'] = 30;
code['$'] = 0;
code['('] = 100;
code[')'] = 1;
}
public ParseExp() {
}
public Integer parse(String... 阅读全帖 |
|
r*****n 发帖数: 2 | 45 onsite之后有个interviewer旅游去了,4周之后才拿到feedback,提交HC之后又一周没
动静了,给recruiter发信也不回。实在等得心烦。发个面经就算挂了然后move on吧。
是fresh master.
两轮电面,都是经典题。写完2个题还有点时间,讨论了一个设计题,我到现在也不理
解题意。
有一种新型存储设备,特点是:
1. 价格贵,稳定性高
2. 可读写,但写入的内容不能修改
如何利用它的特点设计一个存储系统。在聊天过程中增加了一些条件,如果有个人写了
个脚本不停用同样的内容写你的文件系统怎么办,怎么判断每次写入的东西是不是新的
呢。
4轮Onsite 3个印度人一个欧洲人。都是从简单的题开始,不停改改改。都讨论了项目
经验,还问得很细。写完代码都是要照相的,我有个题是开始写得挺干净,后来条件加
加加就改花了,然后interviewer掏出手机拍了一张。。我觉得是不是可以在写完第一
版之后就请他拍一张先。。。
1.一个binary search变体。 写完之后开始抠代码,说如果把终止条件从low<=high 改
成low阅读全帖 |
|
t****a 发帖数: 1212 | 46 程序结果是0.5左右 (100000次模拟)
(defn rand-seq
([s]
(let [x2 (peek s)
x1 (peek (pop s))]
(if (> x2 x1)
s
(recur (conj s (rand))))))
([] (rand-seq [(rand) (rand)])))
(defn avg [x]
(double (/ (reduce + x) (count x))))
(avg (apply concat (take 10000 (repeatedly rand-seq))))
有趣的是,这个期望和模拟出来的sequence长度无关,比如长度为2的时候期望是0.5,
长度分别为3,4,5,6,...的时候也是。 |
|
d****n 发帖数: 233 | 47 void printMaxSubarray2(int[] arr)
{
Stack stack = new Stack();
int max = 0;
int start = 0;
for (int i = 0; i < arr.Length; ++i)
{
if (stack.Count > 0 && (arr[stack.Peek()] + arr[i]) == 1)
{
stack.Pop();
start = stack.Count > 0 ? stack.Peek() : -1;
max = Math.Max(max, i - start);
}
... 阅读全帖 |
|
b********g 发帖数: 28 | 48 public class Solution {
public int largestRectangleArea(int[] height) {
// Start typing your Java solution below
// DO NOT write main() function
if(height == null || height.length == 0) return 0;
int n = height.length;
int[] left = new int[n];
Stack stack = new Stack();
int max = 0;
for(int i = 0; i < n; i++){
if(stack.empty() || height[stack.peek()] <= height[i]){
left[i] = i;
... 阅读全帖 |
|
d***n 发帖数: 832 | 49 再来个更先进的, blocking bounded queue
public class BlockingBoundedQueue
{
private Queue m_queue = new Queue();
private int m_capacity;
private object m_fullEvent = new object();
private int m_fullWaiters = 0;
private object m_emptyEvent = new object();
private int m_emptyWaiters = 0;
public BlockingBoundedQueue(int capacity)
{
m_capacity = capacity;
}
public int Count
{
get
... 阅读全帖 |
|