讲一下老师最后[11,12,13,14,1,2,3,4,5] 这个例子。
假设这个数组到3为止,[11,12,13,14,1,2,3], 没有4,5,那么二分算法结果就是[1,2,3,14]。我想这大概就是最令人费解的地方,正常的逻辑都会想:不对啊,答案不应该是[11,12,13,14]吗?我看了很多地方的解答也没有解释这里。
我的理解是:
这里虽然结果是[1,2,3,14],但是真实路径其实还是[11,12,13,14]!!!
1,2,3的替换是为了希望之后能找到更优的解,但是如果没有4,5那1,2,3就没有任何意义,显示的是[1,2,3,14],真实路径还是[11,12,13,14]!!!
如果,有了4,5,那就是赋予了1,2,3意义。最后表现结果和真实路径会变成[1,2,3,4,5]。
我理解这个算法:一直保留着局部最优解,又尝试不断跳出局部最优解,如果跳出去了,那全局最优解就是最后的局部最优解。如果没跳出去,那全局最优解就是当初的那个局部最优解,当初那个路径数组的长度。
展开