Redian新闻
>
急问Form I-485 问题:A # (if any)
avatar
急问Form I-485 问题:A # (if any)# Immigration - 落地生根
A*g
1
除了暴力和HashSet,还有别的nb算法吗?
avatar
P*N
2
NIW的140已批,approval notice上有个A#。
现在EB1B的140,485同时file,填EB1B的485表时,“A# (if any)”要填NIW的140
approval notice上的A#吗?
多谢!
avatar
s*s
3
cc150有,two pointers
avatar
K*N
4
可以不填。我就是留空了,不过notice来了之后,发现跟140上的是一样的。不填是完
全没有问题的。
avatar
e*s
5
能确定cycle head么

【在 s*******s 的大作中提到】
: cc150有,two pointers
avatar
m*z
6
Same here!

【在 K*N 的大作中提到】
: 可以不填。我就是留空了,不过notice来了之后,发现跟140上的是一样的。不填是完
: 全没有问题的。

avatar
w*s
7


【在 e*******s 的大作中提到】
: 能确定cycle head么
avatar
F*x
8
正好有相同的问题,感谢提供信息,也打算留空

【在 K*N 的大作中提到】
: 可以不填。我就是留空了,不过notice来了之后,发现跟140上的是一样的。不填是完
: 全没有问题的。

avatar
G*m
9
重合后, 量圈长n
然后slow=head, fast = slow+n, 一起走到重合为止

【在 e*******s 的大作中提到】
: 能确定cycle head么
avatar
w*s
10
然后呢?知道圈长怎么确定 head location
avatar
w*s
11
进入loop之后,肯定都是经过 n (slow)或者 2n (fast)step之后再相遇吧,然后怎么
求起始点呢?
avatar
D*d
12
My 2 cents:
1. 首先确定是否有 loop: 2 pointer, 一个走两步一个走一步,若重合则有 loop.
2. 若重合 i.e. Step1 == Step2. 将 loop 打开, Step2 = Step2->next; Step1->
next = 0;
3. Step1 = head, 计算长度 i ; 计算 Step2 开始的长度 j
4. 根据 i,j 对齐,比较相同位置的元素。
avatar
s*w
13
更详细的描述如下:
圈前长a,圈长 b, 第一次相遇在圈开始的第 c 步
a+c == (2a+2c)%b
so 0 == (a+c)%b
so a+c == b
重合时,圈长 b 等于慢指针走过的步数( a+c )
重合后,快指针也变成慢指针,挪动其中一只到整个链表开头;两个指针一起开始慢(
+1)走,再相遇就是圈头, 再走的距离是 a (没要求返回这个)

【在 G*****m 的大作中提到】
: 重合后, 量圈长n
: 然后slow=head, fast = slow+n, 一起走到重合为止

avatar
w*s
14
请问楼上“两个指针一起开始慢(+1)走,再相遇就是圈头” 是怎么能成立的?
如果两个指针都慢了,为什么还能再次相遇呢?不是很明白望解答
avatar
w*s
16
多谢楼上,这个解释最清楚
avatar
A*g
17
除了暴力和HashSet,还有别的nb算法吗?
avatar
s*s
18
cc150有,two pointers
avatar
e*s
19
能确定cycle head么

【在 s*******s 的大作中提到】
: cc150有,two pointers
avatar
w*s
20


【在 e*******s 的大作中提到】
: 能确定cycle head么
avatar
G*m
21
重合后, 量圈长n
然后slow=head, fast = slow+n, 一起走到重合为止

【在 e*******s 的大作中提到】
: 能确定cycle head么
avatar
w*s
22
然后呢?知道圈长怎么确定 head location
avatar
w*s
23
进入loop之后,肯定都是经过 n (slow)或者 2n (fast)step之后再相遇吧,然后怎么
求起始点呢?
avatar
D*d
24
My 2 cents:
1. 首先确定是否有 loop: 2 pointer, 一个走两步一个走一步,若重合则有 loop.
2. 若重合 i.e. Step1 == Step2. 将 loop 打开, Step2 = Step2->next; Step1->
next = 0;
3. Step1 = head, 计算长度 i ; 计算 Step2 开始的长度 j
4. 根据 i,j 对齐,比较相同位置的元素。
avatar
s*w
25
更详细的描述如下:
圈前长a,圈长 b, 第一次相遇在圈开始的第 c 步
a+c == (2a+2c)%b
so 0 == (a+c)%b
so a+c == b
重合时,圈长 b 等于慢指针走过的步数( a+c )
重合后,快指针也变成慢指针,挪动其中一只到整个链表开头;两个指针一起开始慢(
+1)走,再相遇就是圈头, 再走的距离是 a (没要求返回这个)

【在 G*****m 的大作中提到】
: 重合后, 量圈长n
: 然后slow=head, fast = slow+n, 一起走到重合为止

avatar
w*s
26
请问楼上“两个指针一起开始慢(+1)走,再相遇就是圈头” 是怎么能成立的?
如果两个指针都慢了,为什么还能再次相遇呢?不是很明白望解答
avatar
w*s
28
多谢楼上,这个解释最清楚
avatar
q*h
29
本人也比较偏向这种方法,感觉比较好理解:),即:
在确认存在环的情况下,把环断开,问题即转为求两个相交的单链表的第一个相交点。
完事后,重新把环接上。

【在 D**********d 的大作中提到】
: My 2 cents:
: 1. 首先确定是否有 loop: 2 pointer, 一个走两步一个走一步,若重合则有 loop.
: 2. 若重合 i.e. Step1 == Step2. 将 loop 打开, Step2 = Step2->next; Step1->
: next = 0;
: 3. Step1 = head, 计算长度 i ; 计算 Step2 开始的长度 j
: 4. 根据 i,j 对齐,比较相同位置的元素。

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。