easy problem, consider bound test, submit 3 times, not very good
still implement it in a complex way, need to read others' elegant code
Not find bug, TODO