这个算法有点难得