由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - leetcode jump game2
相关主题
jump game II的证明问一个面试题
请教一道Leetcode 题,多谢一道在线测试题 ArrayHopper
leetcode jump game 用一维DP做T家online test跪了大家帮忙看看题
Leetcode 上的jump game有人做出来了吗?问一道rat in maze的变种
一道变形的Jump题My Microsoft Interview Questions
fb一题求解答问一道少见的微软面试题。
问1道array hop的题Amazon电面经
A家面试题:Edit Distance 要求每一步都是个单词BFS traverse O(1) space?
相关话题的讨论汇总
话题: int话题: canreach话题: jump话题: cur话题: min
进入JobHunting版参与讨论
1 (共1页)
c*******u
发帖数: 47
1
贴了好几个方法,包括官方的答案,large data都超时。
l*******b
发帖数: 2586
2
int jump(int A[], int n) {
int p = 0, q = 0, i = 0;
while(q < n-1) {
int m = q;
for(; p <= q; ++p)
m = max(m, p + A[p]);
if(m == q) return -1; // in case cannot reach end
q = m;
++i;
}
return i;
}
c********t
发帖数: 5706
3
DP?

【在 c*******u 的大作中提到】
: 贴了好几个方法,包括官方的答案,large data都超时。
f*******t
发帖数: 7549
4
BFS,O(n)复杂度
j*****y
发帖数: 1071
5
BFS 的复杂度是 O(V + E)
jump game 里面的 E 差不多是 V^2 , 所以 BFS的复杂度应该是 O(n^2)

【在 f*******t 的大作中提到】
: BFS,O(n)复杂度
w****a
发帖数: 710
6
用greedy能O(n),用DP达不到O(n)
研究了三种DP的办法,有一种能四十多毫秒过大集合,有一种超时,一种要一千多毫秒
greedy的解jump game是最好的
j*****y
发帖数: 1071
7
怎么greedy 阿? 多谢 :)

【在 w****a 的大作中提到】
: 用greedy能O(n),用DP达不到O(n)
: 研究了三种DP的办法,有一种能四十多毫秒过大集合,有一种超时,一种要一千多毫秒
: greedy的解jump game是最好的

h**u
发帖数: 35
8
BFS is OK, but traverse from the farthest kid first when visiting a node
class Solution {
public:
int jump(int A[], int n)
{
if ( !A || n <=1)
return 0;
queue Q;
vector min_jump(n, -1);
Q.push(0);
min_jump[0] = 0;
while (!Q.empty()) {

int cur = Q.front();
Q.pop();
if ( A[cur] + cur >= n - 1)
return min_jump[cur] + 1;
for (int i=A[cur]; i>=1; i--) // Traverse from the farthest
{
if ( min_jump[i+cur] == -1 )
{
min_jump[i+cur] = min_jump[cur] + 1;
Q.push (i+cur);
}
}
}
return -1;
}
};
f*******t
发帖数: 7549
9
这题greedy是错的

【在 w****a 的大作中提到】
: 用greedy能O(n),用DP达不到O(n)
: 研究了三种DP的办法,有一种能四十多毫秒过大集合,有一种超时,一种要一千多毫秒
: greedy的解jump game是最好的

c********t
发帖数: 5706
10
greedy应该没问题,参考菜鸟的codes.

【在 f*******t 的大作中提到】
: 这题greedy是错的
相关主题
fb一题求解答问一个面试题
问1道array hop的题一道在线测试题 ArrayHopper
A家面试题:Edit Distance 要求每一步都是个单词T家online test跪了大家帮忙看看题
进入JobHunting版参与讨论
f*******t
发帖数: 7549
11
那个就是BFS呀

【在 c********t 的大作中提到】
: greedy应该没问题,参考菜鸟的codes.
j*****y
发帖数: 1071
12
好厉害的 linear time code

【在 l*******b 的大作中提到】
: int jump(int A[], int n) {
: int p = 0, q = 0, i = 0;
: while(q < n-1) {
: int m = q;
: for(; p <= q; ++p)
: m = max(m, p + A[p]);
: if(m == q) return -1; // in case cannot reach end
: q = m;
: ++i;
: }

s****0
发帖数: 117
13
先贴我的,再看大家的。
public class Solution {
public int jump(int[] jmp) {
int n = jmp.length;
int canReach[] = new int[n];
for (int i = 1; i < n; i++) {
canReach[i] = Integer.MAX_VALUE;
}
canReach[0] = 0;
int head = 0;
for (int i = 0; i < n; i++) {
if (canReach[i] > n)
continue;
for (int j = Math.max(i, head) + 1; (j <= i + jmp[i]) && (j < n)
; j++) {
canReach[j] = Math.min(canReach[j], canReach[i] + 1);
if (j > head)
head = j;
}
}
return canReach[n - 1];
}
}
c********t
发帖数: 5706
14
难道不是bfs+greedy?
我承认确实不太懂greedy真正的含义,看见用了max,觉得就是greedy吧?
我觉得htyu的codes是纯BFS. 不是吗?

【在 f*******t 的大作中提到】
: 那个就是BFS呀
f*******t
发帖数: 7549
15
这题早有人讨论过
http://www.mitbbs.com/article_t/JobHunting/32076261.html
BFS的原理是,假设当前一步所在范围是[i,j] (起始时i=j=0),下一步的范围就是[j
+1, max(k+A[k]) (i<=k<=j)。如果max的值大于last index,则说明当前这一步是需要
的最少步数。

【在 c********t 的大作中提到】
: 难道不是bfs+greedy?
: 我承认确实不太懂greedy真正的含义,看见用了max,觉得就是greedy吧?
: 我觉得htyu的codes是纯BFS. 不是吗?

1 (共1页)
进入JobHunting版参与讨论
相关主题
BFS traverse O(1) space?一道变形的Jump题
问个老题fb一题求解答
DP interview question问1道array hop的题
上面经A家面试题:Edit Distance 要求每一步都是个单词
jump game II的证明问一个面试题
请教一道Leetcode 题,多谢一道在线测试题 ArrayHopper
leetcode jump game 用一维DP做T家online test跪了大家帮忙看看题
Leetcode 上的jump game有人做出来了吗?问一道rat in maze的变种
相关话题的讨论汇总
话题: int话题: canreach话题: jump话题: cur话题: min