1、有一只免子要下台阶,每步只能下2阶台阶或3阶台阶,现在有一段楼梯,台阶数未知,请写一段代码能算出来他最少需要几步能下完所有的楼梯。(如果无论下多少次都无法下来请返回-1) n表示台阶数
int setMinStep (int n ){
}
思路: 动态规划
2、实现方法 List split (String text, Set dict)。它有两个参数text 和 dict, text 是一个由纯小写字母组成的字符串,dict 是 一个集合,里面放着所有的英语单词,都是纯小写字母形式。要求split 返回一个列表,它的每一个元素都是一个英语单词, 并且把它们按顺序连接起来,刚好就是 text. (注意:按长度匹配分割可能行不通) 例如:
Set dict = set.addAll (Arrays. asList (“a”,“app”,“apple”,“desk”,“top”,“led”))
split (”appledesktop”, dict) 会返回 [“apple”,“desk”,“top”] 列表
split (”appledappleatop”, dict) 会返回[“app”,“led”,“apple”,“a”,“top”] 列表
思路: 递归 + 回溯 + 剪枝