一道编程题

来源:互联网 发布:淘宝千禧银楼是真的吗 编辑:程序博客网 时间:2024/05/19 13:17

上周面试碰见一道题目:

      给定一组数,比如a = [4, 6, 1],和一个数m,比如m = 5,要求输出数组中所有的和为m的数的组合,例如5 = 1 + 4。

      当时想到了两种方法,一种用穷举,一种用递归。但在规定的时间内没有完把代码写出来,回来后思考了一下,觉得如果数组中的数不太多的时候,所有的可能为2n-1(n为数组中元素个数),还是用穷举的方法比较方便。我完成的代码如下:

这个题目用递归也能做,但想了半天,求出来的结果不好保存,再就是感觉用动态规划也能解决,只是没有穷举的方法好想,有高手可以指点一下吗?

原创粉丝点击