P*******r 发帖数: 210 | 1 这道题目好像有好几个版本,你确认可以直接拿ArrayList的Iterator吗?
好像见过一个Generic的 linked list,每个Node 有 down 和 next.
不过基本上用到Stack是必须的。
0, |
|
p*u 发帖数: 136 | 2 电面写的这段代码,过了。
class Collection
{
public:
T next() {
if (_type == 0)
{
if (_index == 0)
{
_index++;
return _value
}
else
{
throw Exception;
}
}
else
{
while (_index < buckets.size())
{
if (_buckets[_index].hasN... 阅读全帖 |
|
D*T 发帖数: 75 | 3 想了一下,这个问题好像不是那么容易。楼主的code如果末尾有个空的List会出错。我
不太懂C++所以pdu的只是半懂,不过感觉我的想法和ta估计差不多。moridin的code很
神奇,我实在看不太懂。
下面是我的code,搞ArrayList还成,搞LinkedList可能就惨了。另外remove好像是ok
的。
import java.util.*;
class ArrayPosition {
ArrayList array;
int index;
ArrayPosition(ArrayList array) {
this.array = array;
index = 0;
}
Object peekItem() {
return array.get(index);
}
Object takeItem() {
return array.get(index++);
}
}
public class DeepIteratorII implements ... 阅读全帖 |
|
x**********g 发帖数: 91 | 4 这个有没有大牛贴个c++版本的啊,
多谢多谢,大概意思理解了,只是c++里怎么表示那个object的iterator? |
|
m**********g 发帖数: 153 | 5 把pre-order iterative traversal 改造了一下, 添加了 vector
nodePath; 作为path stack. 楼主看看是不是可以?
class Solution {
public:
void preorderTraversal(TreeNode *root) {
stack st;
vector nodePath;
if(root == NULL)
return;
st.push(root);
while(st.size()) {
TreeNode *tmp = st.top();
st.pop();
//leaf node, print the path from root to leaf
... 阅读全帖 |
|
h**o 发帖数: 548 | 6 原来是这样.自己造不出这个path stack来.学习了.
把pre-order iterative traversal 改造了一下, 添加了 vector
nodePath; 作为path stack. 楼主看看是不是可以?
class Solution {
public:
void preorderTraversal(TreeNode *root) {
stack st;
vector nodePath;
if(root == NULL)
return;
st.push(root);
while(st.size()) {
TreeNode *tmp = st.top();
st.pop();
//leaf node, pri... 阅读全帖 |
|
d********e 发帖数: 239 | 7 leedcode上的题目sort list
space要求O(1)
找了半天,都是recursive的方法
请哪个大牛能贴一个iterative的代码吧
谢谢 |
|
s**x 发帖数: 7506 | 8 有个地方是如何判断 end of iterator, 感觉是只能用 exception handling. |
|
z******g 发帖数: 271 | 9 C路过
But if I were to do it, I would make the iterator data structure contain the
bucket size, a bucket cursor and a reference to the underlying linked list
node. The worst case time complexity would be O(m + n) where m is the bucket
size. |
|
|
x******e 发帖数: 18 | 11 请问如果面试用C++,是应该多用iterator还是少用?当过面试官的同学有啥意见? |
|
z******g 发帖数: 271 | 12 你这样做意义不大,要么就写java,要么就写cpp自己的iterator |
|
t*****a 发帖数: 106 | 13 好吧。这种iterator的题还是很坑C++用户的,基本上得自己定义类型定义structure从
头开始写。 |
|
|
t*****a 发帖数: 106 | 15 感觉有些iterator的题C++基本就没法弄。。。写出来太复杂了,正发愁呢。 |
|
w****a 发帖数: 710 | 16 其实我觉得绝大部分的iterator题用C++写也无压力啊。
nested那个是有点难办。其他的还好。 |
|
t*****a 发帖数: 106 | 17 nested那个非要写就用一个pair, 第一个存iterator,第二个存end的标识别。把pair压
入stack
递归调用 |
|
t*****a 发帖数: 106 | 18 兄台有空给大家写个例子吧。nest多了我实在想不出好办法,每层都要存一个
collection的end标识,太麻烦了。各种nested vector, map, list. 假如有10层,存
10个iterator还得存10个end的标识,太麻烦。 |
|
s******8 发帖数: 4192 | 19 第二题根据实际需求实现方法差别极大。内存要求,访问要求,指针长度,是否共享子
iterator,node类型等等细节决定实现。不知道细节要求,都是空中楼阁,白说。 |
|
|
t*****a 发帖数: 106 | 21 店面,让写file iterator, next, hasnext. 我说我用C++写,然后写了一点,面试官
说next, hasnext是JAVA的,你要用C++就得实现itr++,itr--, begin,end. WTF, C++
coding量double了不说,还要实现itr--和end... 难不成我把文件先读进来,或者记下
行数重头读?--两次我还不得重读两次? 想了两分钟直接说不会,爱咋咋地吧。Java
实现next, hasnext, 用C++就变成++,--, begin, end. vector, list也就算了,文件
还要指针--。坑。。。求指点。 |
|
r****7 发帖数: 2282 | 22 是iterate多个文件,还是一个stream读一个文件啊?
+
Java |
|
T******7 发帖数: 1419 | 23 recursive 可能 会爆stack?
iterative费内存? |
|
h**********c 发帖数: 4120 | 24 in addition:
recursive compact, readable;
iterative, three nested loops; ijk noodles; |
|
z***y 发帖数: 73 | 25 recursive消耗栈空间,同时函数调用有上下文切换的消耗。
iterative效率比recursive高,但是代码可能就没有recursive清晰明了。 |
|
l*****n 发帖数: 246 | 26 为啥要把iterator排序?直接存int到heap里面不行吗? |
|
k******i 发帖数: 11 | 27 也可以, 自己拿hashmap或者建立一个 int->Iterator的mapping能够提供O(1)lookup
就可以了。然后注意处理一下duplicate value的情况就OK了。 |
|
t*****3 发帖数: 112 | 28 我的做法是在constructor初始化的时候直接转为一个iterator,反正不能修改。另外
整个可以看成树,只有叶子节点有整数,所以用什么遍历其实都无所谓,最后都是中序
。 |
|
|
b*****n 发帖数: 618 | 30 可以用stack,参考LC的iterative traversal的方法 |
|
A*******e 发帖数: 2419 | 31 这个真有点屠龙之技的意思,不如直接问stl map的iterator,那个还实用些。BST没必
要省略父指针。这点内存节省和多出的编程开销比,其实不划算。 |
|
w******5 发帖数: 7 | 32 这个题和iterative遍历树差不多,应该是考察stack的使用吧。
O( |
|
y****z 发帖数: 52 | 33
不需要父节点
这题考的其实是stack +遍历
iterator的用处是不需要知道全部节点就能尽快返回下一个节点
或者你假设一个bst有一亿个节点 如果全部遍历估计要几个小时
用stack可以尽快取出一个节点 如果遍历到null了就要adjust 然后又发现新的节点
这题很简单的 |
|
d******o 发帖数: 13 | 34 Stack + 递归
之前面Twitter也被问到过,但是迷迷糊糊没想清楚。。。
需要一个 helper class: Pair(NestedList list, int position) 定义当前所在的位
置.
Iterator 需要实现 hasNext() 和 next()
hasNext 检查还有没有值,检查栈顶的Pair,如果当前所指的是Node,直接输出 true
即可。如果是List,就new 一个 Pair(curList, 0), push到stack上。然后递归的
call hasNext 进行检查。如果 栈顶的position 已经超出 当前list 的范围,说明已
经遍历完当前list, pop 掉当前元素,然后对新的栈顶元素(如果有的话)的
position + 1, 之后同样 递归的 call hasNext 继续进行检查。
至于next,上面的 hasNext 保证了 如果还有值,会让栈顶的Pair指到一个Node,所以
直接输出即可,并将 position + 1. |
|
d******o 发帖数: 13 | 35 Stack + 递归
stack中存储的是iterate 时,当前所处的 List 及 position,可能指向的是Node,可
能是List,可能当前的position == list.size() 也可能 stack 已为空。
分别对以上情况做处理即可。 |
|
S********t 发帖数: 3431 | 36 list个毛线,直接说nary tree嘛。
tree怎么做iterator不是基础知识吗? |
|
|
|
d******o 发帖数: 13 | 39 Stack + 递归
之前面Twitter也被问到过,但是迷迷糊糊没想清楚。。。
需要一个 helper class: Pair(NestedList list, int position) 定义当前所在的位
置.
Iterator 需要实现 hasNext() 和 next()
hasNext 检查还有没有值,检查栈顶的Pair,如果当前所指的是Node,直接输出 true
即可。如果是List,就new 一个 Pair(curList, 0), push到stack上。然后递归的
call hasNext 进行检查。如果 栈顶的position 已经超出 当前list 的范围,说明已
经遍历完当前list, pop 掉当前元素,然后对新的栈顶元素(如果有的话)的
position + 1, 之后同样 递归的 call hasNext 继续进行检查。
至于next,上面的 hasNext 保证了 如果还有值,会让栈顶的Pair指到一个Node,所以
直接输出即可,并将 position + 1. |
|
d******o 发帖数: 13 | 40 Stack + 递归
stack中存储的是iterate 时,当前所处的 List 及 position,可能指向的是Node,可
能是List,可能当前的position == list.size() 也可能 stack 已为空。
分别对以上情况做处理即可。 |
|
S********t 发帖数: 3431 | 41 list个毛线,直接说nary tree嘛。
tree怎么做iterator不是基础知识吗? |
|
|
|
a******f 发帖数: 9 | 44 #include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
class NestedInteger {
public:
NestedInteger(int i) : integer(i), isInt(true) {}
NestedInteger(vector l) : nestedList(l), isInt(false) {}
// Return true if this NestedInteger holds a single integer, rather than
a nested list.
bool isInteger() {
return isInt;
}
// R... 阅读全帖 |
|
z**********g 发帖数: 209 | 45 Implement an Array iterator.
请问这个题应该怎么写code的哪,完全没有思路。
谢谢 |
|
p***p 发帖数: 559 | 46 Iterator,Hashmap,linkedlist这些。我觉得如何使用,效率高低
等等很多看经验。哪里有比较实用精要的文章和例子可以看一看,或者
哪位稍微讲讲。 |
|
S*******s 发帖数: 13043 | 47 if my program will access every member in a vector sequentially and frequantly
, which would be faster, iterator or []? |
|
P*****x 发帖数: 72 | 48 Indexing should be slower than iterator ba.
frequantly |
|
c*****e 发帖数: 38 | 49 vector: approx. the same
map: iterator
frequantly |
|
e*a 发帖数: 32 | 50 r u trying to change your "iter" in a "const" method? |
|