假设我们有一个大小为 N 的向量
A。Pawn 从 A[0] 开始并跳转到 A[0] 指向的索引:A[0] 的值告诉它必须如何移动,即:如果索引为 6。
A[6]=1 -> move 1 to the right, to A[7]
A[6]=-2 -> move 2 to the left, to A[4]
如果 pawn 到达最后一个索引并且是 positive,则 pawn 超出范围示例:
A 0 | 1 | 1 | 3 | 4 | 5 2 -1 4 1 4 2
每个元素包含的最大值为 1 000 000 且 N < 1 000 000。函数应返回 4。
任务:编写一个函数int arrayJmp ( const vector<int> &A )
,如果 pawn 永远不会离开表,则返回 -1;如果它会跳出数组,则返回移动次数。最坏情况的复杂度应该是 O(n)。你可以在下面找到我的答案。这是正确的吗?