用 dfs 去枚举每个位置的数字,同时记录数字和,如果数字和大于等于 n时,先判断是否等于n,等于n就输出,不等于n就返回,继续枚举下一个数字。当然也可以写一个优化,这里观察题目后发现,最多只需要搜 n 个位置,因为n最多的分解就是n个1,如果位置大于n+1可以直不用搜了。
同感
共 2 条回复
用 dfs 去枚举每个位置的数字,同时记录数字和,如果数字和大于等于 n时,先判断是否等于n,等于n就输出,不等于n就返回,继续枚举下一个数字。当然也可以写一个优化,这里观察题目后发现,最多只需要搜 n 个位置,因为n最多的分解就是n个1,如果位置大于n+1可以直不用搜了。
同感