From fa266509996d234df2b694ad1d4250944129f589 Mon Sep 17 00:00:00 2001 From: YangFong Date: Sat, 19 Mar 2022 13:48:04 +0800 Subject: [PATCH] docs: add a description of the solution to lcci problem: No.08.03 No.08.03.Magic Index --- lcci/08.03.Magic Index/README.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/lcci/08.03.Magic Index/README.md b/lcci/08.03.Magic Index/README.md index 243ee373ee0ce..8aee0858a4a88 100644 --- a/lcci/08.03.Magic Index/README.md +++ b/lcci/08.03.Magic Index/README.md @@ -30,6 +30,20 @@ +**线性查找:** + +遍历数组,当 `A[i] = i` 时直接返回即可。 + +**优化:** + +在遍历的基础,进行可能的 "跳跃",结束时执行 `i = max(A[i], i + 1)`,而不再单纯 `i++`。 + +可行性证明: + +因为数组是**有序**的,若 `A[i] != i`,那么就可以将 `A[i]` 以下的可能全部排除,直接将 `i` 设定为 `A[i]`。 + +若是考虑最糟的状况(所有元素都为负数),则该优化与遍历无差别。 + ### **Python3**