
1 BFS for the shortest path
2 先找到小于n的所有perfect squares
3 為什么這叫BFS呢?因?yàn)榘阉星闆r都窮舉完了
4 需要一個(gè)變量來(lái)記錄path的深度,也就是返回值
5? BFS一般需要一個(gè)數(shù)組來(lái)存儲(chǔ)這一行的中間結(jié)果
6 每次都用剩下的值去減list中的perfect square number,得到新一個(gè)level的值,當(dāng)level中的值和list中的perfect square相等時(shí),說(shuō)這個(gè)path結(jié)束了,可以返回cnt了。
7 由于list中是ascending的,所以當(dāng)list中的值大于當(dāng)前余數(shù)時(shí),可以直接跳出循環(huán)了;小于余數(shù)的話,就繼續(xù)往下走
8 設(shè)置一個(gè)set,遇到重復(fù)的余數(shù),直接只算一遍就行了
