改进后的算法,增加了关键判断