l*********h 发帖数: 15 | 1 LinkedIn 的题
"Program an iterator for a List which may include nodes or List i.e. * {0,
{1,2}, 3 ,{4,{5, 6}}} Iterator returns 0 - 1 - 2 - 3 - 4 - 5 - 6"
今天翻Design Pattern 的时候看到iterator and composite pattern 突然发现这个和
前一阵一直不会写的Deep Iterator有点像
大概思路是这样的,用一个stack 存放 iterator 如果到了最底层是Integer就输出,
如果iterator.next还是个List,就把这个List的iterator 扔到stack里面,然后
Recusion next()方法。每回从stack里面取的时候看看那个iterator有没有用完,如果
已经遍历到最后用完了,就直接扔出stack
底下是程序
import java.util.ArrayList;
import java.util.Iterator;
import java.util.... 阅读全帖 |
|
l*********h 发帖数: 15 | 2 LinkedIn 的题
"Program an iterator for a List which may include nodes or List i.e. * {0,
{1,2}, 3 ,{4,{5, 6}}} Iterator returns 0 - 1 - 2 - 3 - 4 - 5 - 6"
今天翻Design Pattern 的时候看到iterator and composite pattern 突然发现这个和
前一阵一直不会写的Deep Iterator有点像
大概思路是这样的,用一个stack 存放 iterator 如果到了最底层是Integer就输出,
如果iterator.next还是个List,就把这个List的iterator 扔到stack里面,然后
Recusion next()方法。每回从stack里面取的时候看看那个iterator有没有用完,如果
已经遍历到最后用完了,就直接扔出stack
底下是程序
import java.util.ArrayList;
import java.util.Iterator;
import java.util.... 阅读全帖 |
|
g*****g 发帖数: 212 | 3 需要澄清,1 char数组中部分字母还是要求全部字母组成单词, 2 数组中有重复字母吗
1.1, 1.2同一个意思吧,似乎只能试该数组的permutation,挨个检查isword了。
假设全部字母组成单词,允许重复:
1.3 字典:trie,字典中所有单词,trie 路径是按 a-z顺序排序的变形词,叶子结点
保存原始单词
peek => e->e->k->p (peek)
如此 输入char数组,排序是O(n), match O(n) |
|
l********3 发帖数: 33 | 4 只返回元素。
只是peek了之后,再pop的话就一定是之前peek的元素 |
|
l*********d 发帖数: 78 | 5 可不可以先 pop, 然后 peek, 然后比大小决定往前放还是往后放?数组维护两个
index:begin and end
public int[] solve() {
int[] result = new int[list.size()];
int beg = 0, end = result.length-1;
int last = list.pop();
while (!list.isEmpty()) {
int next = list.peek();
if (last > next) result[end--] = last;
else result[beg++] = last;
last = list.pop();
}
result[beg] = last;
return result;
} |
|
f*****e 发帖数: 2992 | 6 想出来了,每pop一个,peek一次就行了。对于distinct elements而言。
对于有重复的继续pop,并记载次数,直到peek到不同元素或为空为止。 |
|
t********2 发帖数: 28 | 7 可不可以就先push一个int_max 然后不断peek 只要不等于int_max就pop 直到连续100
次peek都是int_max为止 |
|
h*d 发帖数: 19309 | 8 尾部push NULL(INT_MAX,INT_MIN)之类的,如果peek是尾部就继续peek,不是尾部就
pop(),这样就能保证每次是从头部pop。
之后把尾部的NULL pop了,把头元素push到尾部,然后把NULL重新push到尾部继续。
这样可以么? |
|
P*A 发帖数: 189 | 9 两个容器分别从两头开始存,最后merge到一起
vector copy(Quack& q) {
vector v1, v2;
int a,b,c;
while (!q.empty()) {
a = q.peek();
q.pop();
c = 1;
while (!q.empty()) {
b = q.peek();
if (b == a) {
++c;
q.pop();
}
else
break;
}
if (q.empty()) {
v1.insert(v... 阅读全帖 |
|
z****e 发帖数: 54598 | 10 是排好序的话,直接找一个自定义的结构堵住尾
比如里面都是integer,那我就用一个string
然后peek,只要是string,就重新peek
如果不是,则是head,pop出来,拷贝到array里面去
这样就可以绕开各种比较的陷阱
java里面有instanceof关键字,所以……
collection |
|
l********3 发帖数: 33 | 11 只返回元素。
只是peek了之后,再pop的话就一定是之前peek的元素 |
|
l*********d 发帖数: 78 | 12 可不可以先 pop, 然后 peek, 然后比大小决定往前放还是往后放?数组维护两个
index:begin and end
public int[] solve() {
int[] result = new int[list.size()];
int beg = 0, end = result.length-1;
int last = list.pop();
while (!list.isEmpty()) {
int next = list.peek();
if (last > next) result[end--] = last;
else result[beg++] = last;
last = list.pop();
}
result[beg] = last;
return result;
} |
|
f*****e 发帖数: 2992 | 13 想出来了,每pop一个,peek一次就行了。对于distinct elements而言。
对于有重复的继续pop,并记载次数,直到peek到不同元素或为空为止。 |
|
t********2 发帖数: 28 | 14 可不可以就先push一个int_max 然后不断peek 只要不等于int_max就pop 直到连续100
次peek都是int_max为止 |
|
h*d 发帖数: 19309 | 15 尾部push NULL(INT_MAX,INT_MIN)之类的,如果peek是尾部就继续peek,不是尾部就
pop(),这样就能保证每次是从头部pop。
之后把尾部的NULL pop了,把头元素push到尾部,然后把NULL重新push到尾部继续。
这样可以么? |
|
P*A 发帖数: 189 | 16 两个容器分别从两头开始存,最后merge到一起
vector copy(Quack& q) {
vector v1, v2;
int a,b,c;
while (!q.empty()) {
a = q.peek();
q.pop();
c = 1;
while (!q.empty()) {
b = q.peek();
if (b == a) {
++c;
q.pop();
}
else
break;
}
if (q.empty()) {
v1.insert(v... 阅读全帖 |
|
z****e 发帖数: 54598 | 17 是排好序的话,直接找一个自定义的结构堵住尾
比如里面都是integer,那我就用一个string
然后peek,只要是string,就重新peek
如果不是,则是head,pop出来,拷贝到array里面去
这样就可以绕开各种比较的陷阱
java里面有instanceof关键字,所以……
collection |
|
t********n 发帖数: 611 | 18 def copyQuack(q):
result =[]
last =0
while q.peek():
x = q.pop()
result.insert(last, x)
y = q.peek()
if y > x:
last +=1
return result
重复的我再想想 |
|
a*****y 发帖数: 22 | 19 假设Quack的顺序是递增
我的思路是,想办法找到最大的元素(尾),然后push进一个标志(如MIN_INT);下次
peek的时候,只pop非MIN_INT的元素,直到再次遇到最大的那个元素,此时可以pop标
志,直至空
void PopQuackToArray(Quack& quack, vector& array) {
vector tmp;
int last = quack.pop();
tmp.push_back(last);
int curr;
while (!quack.empty()) {
curr = quack.pop();
if (curr != last) {
break;
}
tmp.push_back(last);
}
if (quack.empty()) {
if (curr < last) {
array.push_back(curr);
... 阅读全帖 |
|
t********n 发帖数: 611 | 20 def copyQuack(q):
result =[]
last =0
while q.peek():
x = q.pop()
result.insert(last, x)
y = q.peek()
if y > x:
last +=1
return result
重复的我再想想 |
|
a*****y 发帖数: 22 | 21 假设Quack的顺序是递增
我的思路是,想办法找到最大的元素(尾),然后push进一个标志(如MIN_INT);下次
peek的时候,只pop非MIN_INT的元素,直到再次遇到最大的那个元素,此时可以pop标
志,直至空
void PopQuackToArray(Quack& quack, vector& array) {
vector tmp;
int last = quack.pop();
tmp.push_back(last);
int curr;
while (!quack.empty()) {
curr = quack.pop();
if (curr != last) {
break;
}
tmp.push_back(last);
}
if (quack.empty()) {
if (curr < last) {
array.push_back(curr);
... 阅读全帖 |
|
m*****k 发帖数: 731 | 22 与100, 200有关系么?
1. set lastPoped = null,
2. print root,
3. push root into a stack S,
3. while (s.size()>0):
if not s.peek().hasChildren():
lastPoped = s.pop()
else:
s.push(s.peek().getSibling(lastPoped) )
Node.getSibling(Node childX) will return first Child if childX is null,
otherwise return x's next sibling.
看来来出题人默认stack不会out of mem,否者来个极端的例子, 内存只允许stack存2
个Node,没法玩了。
或者也许我理解错了题意? |
|
S******2 发帖数: 248 | 23 和rtscts说的一样.
public static String removeDup(String str)
{
if(str == null || str.length() <= 1)
return str;
Stack stack = new Stack();
for(int i = 0; i < str.length(); i++)
{
char ch = str.charAt(i);
if(stack.isEmpty() || ch != stack.peek())
{
stack.push(ch);
}
else if(ch == stack.peek())
{
stack.pop();
}
... 阅读全帖 |
|
r****s 发帖数: 1025 | 24 稍微改一下,stack也可以做出来。
public static String removeDup(String str)
{
if(str == null || str.length() <= 1)
return str;
Stack stack = new Stack();
Character last = ' ';
for(int i = 0; i < str.length(); i++)
{
char ch = str.charAt(i);
if(ch!=last && (stack.isEmpty() || ch != stack.peek()))
{
stack.push(ch);
... 阅读全帖 |
|
f*****d 发帖数: 2285 | 25 http://googlecloudplatform.blogspot.com/2014/06/sneak-peek-goog
In today's world, information is being generated at an incredible rate.
However, unlocking insights from large datasets can be cumbersome and costly
, even for experts.
It doesn’t have to be that way. Yesterday, at Google I/O, you got a sneak
peek of Google Cloud Dataflow, the latest step in our effort to make data
and analytics accessible to everyone. You can use Cloud Dataflow:
for data integration and preparation (e.g. in prepara... 阅读全帖 |
|
r*******e 发帖数: 971 | 26 public void pop() {
int t=st.peek(),m=min.peek();
if (t==m) {
min.pop();
}
st.pop();
} |
|
f**********t 发帖数: 1001 | 27 实现了vector的iterator,包括Next(), hasNext(), peek()等功能。
但是一旦用template写又卡住了。
这里vector::iterator it; 会出错:missing ";" before identifier "it"
感觉是个编译问题,但不知怎么fix. 求指教。多谢!=)
template class VectorIterator {
vector vec_;
vector::iterator it;
public:
VectorIterator(vector &vec) {
vec_ = vec;
it = vec_.begin();
}
bool hasNext() {
return it != vec_.end();
}
T next() {
if (!hasNext()) {
throw exception("End of vector");
... 阅读全帖 |
|
l**********1 发帖数: 415 | 28 lintcode 上的一个题, 要求时间复杂度是 O(lgn)
There is an integer array which has the following features:
* The numbers in adjacent positions are different.
* A[0] < A[1] && A[A.length - 2] > A[A.length - 1].
We define a position P is a peek if A[P] > A[P-1] && A[P] > A[P+1].
Find a peak in this array. Return the index of the peak.
Note
The array may contains multiple peeks, find any of them.
Example
[1, 2, 1, 3, 4, 5, 7, 6]
return index 1 (which is number 2) or 6 (which is number 7) |
|
m******a 发帖数: 84 | 29 请问 auto peek = [&](int id) 这种用法是什么意思?
后面为什么可以peek(m) 这么用? |
|
x*******6 发帖数: 262 | 30 贡献一个code,由于没有乘除,只需要记录括号内是否要根据加减改变数字的符号,不
需要使用reverse polish notation解法。
public static int eval(String s, int x) {
String[] exp = s.split("=");
int[] left = helper(exp[0],x);
int[] right = helper(exp[1],x);
return (left[0] - right[0])/(right[1]-right[0]);
}
private static int[] helper(String s, int x) {
boolean positive = true;
Stack re = new Stack();
re.push(false);
int num = 0;
int y = 0;
... 阅读全帖 |
|
l******s 发帖数: 3045 | 31 //Recursive
public static TreeNode buildTree(string express)
{
int i = 0;
while (i < express.Length && express[i] != '?') i++;
TreeNode root = new TreeNode(express.Substring(0, i).Trim());
int index = i, count = 0;
while (index < express.Length && !(count == 0 && express[index] == ':'))
{
if (express[index] == '?') count++;
else if (express[index] == ':') count--;
if(count != 0) index++;
}
if (index >= express.Length) return root;
root.... 阅读全帖 |
|
d****n 发帖数: 397 | 32 用两个heap.一个max heap,一个min heap, maxheap size = min heap size 或者
maxheap size = minheapsize + 1.
java implementation
public class Solution {
/**
* @param nums: A list of integers.
* @return: the median of numbers
*/
public int[] medianII(int[] nums) {
// write your code here
PriorityQueue pmin = new PriorityQueue ();
PriorityQueue pmax = new PriorityQueue (10, new
MaxComparator());
int i, l = nums.l... 阅读全帖 |
|
t****m 发帖数: 140 | 33 http://www.lintcode.com/en/problem/find-peak-element-ii/
There is an integer matrix which has the following features:
The numbers in adjacent positions are different.
The matrix has n rows and m columns.
For all i < m, A[0][i] < A[1][i] && A[n - 2][i] > A[n - 1][i].
For all j < n, A[j][0] < A[j][1] && A[j][m - 2] > A[j][m - 1].
We define a position P is a peek if A[j][i] > A[j+1][i] && A[j][i] > A[j-1][
i] && A[j][i] > A[j][i+1] && A[j][i] > A[j][i-1].
Find a peak element in this matrix. Return ... 阅读全帖 |
|
l******s 发帖数: 3045 | 34 好像BFS + Queue
共1680个解。
private static IEnumerable ThreeBuckets(){
Queue queue = new Queue();
for (int[,] tmp = new int[3, 3] { { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } };
tmp[2, 0] == 0; tmp = queue.Peek()[2, 0] != 0 ? queue.Peek() : queue.Dequeue
())
for (int i = 1; i < 10; i++)
if (!(i == tmp[0, 0] || i == tmp[0, 1] || i == tmp[0, 2] || i == tmp[1, 0] |
| i == tmp[1, 1] || i == tmp[1, 2]))
for (int j = i + 1; j < 10; j++)
if (!(j == tmp[0, 0] || j == tmp[0, 1] || j == tmp[... 阅读全帖 |
|
f****e 发帖数: 923 | 35 print max depth path of a binary tree
给一个linkedlist,里面的element都排序好了,但是是一个blackbox,有三个
function可以调用。pop()随机pop出最前面或最
后面的element,peek()随机偷看最前面或最后面的element,isEmpty()回传
linkedlist是不是空了。问设计一个资料结构,list
或是array都可以,把linkedlist里面所有的element都拿出来,并保持他们的排序。
followup是如果不能用peek()该怎么做。 |
|
c********t 发帖数: 5706 | 36 第一题 dfs + backtracking
第二题 每次都peek很多次?如果不能peek,取出放heap里? |
|
发帖数: 1 | 37 你第一个test case,-20的平方是小于25的呀。我怎么觉得这个题可以用stack来做,
复杂度是O(N)
我想法是用一个min stack和max stack,存的下标。如果nums[min.peek()]平方小于
max.peek的,那么就count=Math.min取更优解。然后pop min,否则就pop max。我的疑
问是这么pop min和pop max正确么,可能会漏掉解。因为:min:2,3, max:5,6,
按照上面逻辑会pop min的2而不是pop max的5,但是2和6可能挨的更近。所以需要一种
构建min和max的stack的方法使其不会造成这样的情况,或着可以干脆同样逻辑倒着再
跑一遍(match的时候pop max,不match的时候pop min)
总体无论哪种形式应该都是O(N) |
|
发帖数: 1 | 38 这题是84题的一个小拓展,不过不是很容易想到。
84题就是说如果直方图的高度是递增的,我们就入栈他的index以计算宽度,如果下降
了,就弹栈清算无法拓展面积的bar。
代码如下:
public int largestRectangleArea(int[] heights) {
Stack st = new Stack<>();
int[] nums = Arrays.copyOf(heights, heights.length + 1);
int res = 0;
for (int i = 0; i < nums.length; i++) {
while (!st.empty() && nums[st.peek()] >= nums[i]) {
int h = nums[st.pop()];
int w = st.empty() ? i : i - 1 - st.peek();
res = Math.max(res, w * h);
... 阅读全帖 |
|
p*********g 发帖数: 2998 | 39 step 1: fixed time period or dynamic time period,
比如5分钟的,fixed
0:05, 0:10, 0:15.
那么你需要一个map<0:05: times> 每次进来, 拿到系统时间, 找到对应的map,然后放
入对应的map.entry
同理可以找到一小时的,一天的,比如一天的,那么一个月的log是30条数据,
如果是dynamic,就不是这样了,因为每个时间要找这个时间的前5分钟出现的次数,那
你要准备一个queue, 如果时间进来,比较queue.peek(),如果 (新进来的时间-queue
.peek())>5, 就pop出去。 然后queue.size(), 就是当前5分钟的次数,如果你需要全
部的, 你要用map<每次进来的时间,times> 来记录, log大小取决于,新访问的次数。 |
|
r*****s 发帖数: 1815 | 40 单机还给搞什么map queue heap的一律0分,而且面试官会觉得很尴尬
: step 1: fixed time period or dynamic time period,
: 比如5分钟的,fixed
: 0:05, 0:10, 0:15.
: 那么你需要一个map 每次进来, 拿到系统时间, 找到对应的map,然后放
: 入对应的map.entry
: 同理可以找到一小时的,一天的,比如一天的,那么一个月的log是30条数据,
: 如果是dynamic,就不是这样了,因为每个时间要找这个时间的前5分钟出现的次
数,那
: 你要准备一个queue, 如果时间进来,比较queue.peek(),如果 (新进来的时间
-queue
: .peek()) |
|
|
|
b*******1 发帖数: 1480 | 43 宝宝6周大,现在每天晚上哄睡觉很麻烦,医生说不能宠,最好是不要抱。
小鬼现在发现人抱着舒服,放下就哭抱起来马上好,安慰奶嘴也不起作用。
考古了一下
版上有朋友推荐这两款
Fisher-Price Rainforest Waterfall Peek-a-Boo Soother
Fisher-Price Rainforest Peek-a-Boo Leaves Musical Mobile
买哪种好呢,或是还有更好的推荐,谢谢 |
|
f***q 发帖数: 601 | 44 我娃从小就爱玩peek-a-boo,我动作慢,给他穿衣服套头的时候,就在往下拉的时候,
同时逗他,脸一露出来就说:“peek-a-boo!"他以为我在跟他玩,马上就高兴了。其他
的,比如擦手,给脸上抹油之类的,都用差不多的套路。他以为我在跟他玩,就从不爽
变开心了。但是他不喜欢套袖子,我目前还没找到好办法,每次都要嚎一阵。希望跟毛
头一样,过了这阵就好了。 |
|
b*******s 发帖数: 26 | 45 【 以下文字转载自 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... 阅读全帖 |
|
h*********4 发帖数: 12966 | 46 我家十个月,有特定的比较喜欢的五本书,每本大概5-6页,会爬过去拍拍书让给她读
。不过每天都读这五本,妈妈非常非常非常闷。
一本是“baby face”有只蓝色的狗和一个小baby,内容很简单
Blue's Nose, Baby's Nose, Where is your nose...
鼻子眼睛嘴巴都说一遍,然后peek-boo
一本是blankie,讲一个小朋友有多么喜欢他的blankie,这本书画得很丑(妈妈觉得)
但是宝宝喜欢,这本貌似页数较多,大概7-8页
一本讲一直活泼的兔子,然后每页有一些宝宝可以摸的不同质感的东西
一本peek-boo,每页都藏了一个东西
一本“This is not my teddy",前面N页说This is not my teddy, my teddy的眼睛,
鼻子,嘴巴不是这样的,最后一页说“This is my teddy..."
如果俺闺女长大了跟我侄女一样电影也要重复一遍一遍的看,我就只有哭了 |
|
|
r*****M 发帖数: 54 | 48 【 以下文字转载自 NextGeneration 讨论区 】
发信人: rabitMM (开心小猪), 信区: NextGeneration
标 题: 一鼓作气再奔: Emily的新本事
发信站: BBS 未名空间站 (Tue Aug 28 23:43:29 2007)
谢谢大家的祝福,可惜妈妈财力有限,后面的就没有包子啦,真不好意思
再来show show
拍手,鼓掌
拍我的小伙伴,还要拉着小伙伴一起看电视,还要匡玩具小人睡觉觉,嘴里念念有词:
ououou....
会比划1字,还学会小美女fiona的经典动作,可是妈妈没有抓拍下来
Peek-a-boo
这个估计是从电视上学的,以前都是那书书,床单来peek-a-boo的,现在改成用自己的
小手手啦。 |
|
q****i 发帖数: 6923 | 49 7 to 9 months
Your baby's becoming an expert at sitting and may soon be crawling as well.
Encourage these physical feats by celebrating each new milestone: "Joshua,
you sat up! Amazing baby!" Include a big hand for the little fella.
The ability to transfer objects from hand to hand and the fabled pincer
grasp are part of your baby's increasing hand control (which means you'll be
forced to carry a container of O-shaped cereal with you at all times for
the next year).
Your baby also begins to unde... 阅读全帖 |
|
x*****i 发帖数: 4035 | 50 偶然在网上看到这个,觉得很有用,分享一下
标题是gifted children,其实大家都可以玩吧,就是有些游戏我们老中家长们要补课
Best Games for Gifted Children
http://www.thekidstory.com/websites-for-gifted-children/top-10-
1.Rat-A-Tat-Cat - There are two versions of this card game, one with a
super peek option and collectible tin, and the original (linked here). We
prefer the original because the “super peek” kind of takes away the fun
and strategy for us. Absolutely, hands down, a favorite for Kindergarten to
adult! Games are fast and require skill, str... 阅读全帖 |
|