o(N2) https://blog.csdn.net/u014688145/article/details/79057475
o(N) https://blog.csdn.net/magicbean2/article/details/79628194