碰到这样一个问题。给定一组数组作为基数,然后给一个数字,求出所有以数组值为基数的数量和为给出数字值的组合。
举例简单说明吧:假定一个简单的数组arr[3]={2,3,6},然后
给出数字8的组合有三种:(2->4); (6->1)(2->1); (3->2)(2->1)
给出数字9的组合也有三种:(3->3); (6->1)(3->1); (2->3)(3->1)
PS:本人用C#写了个三重循环加递归,感觉有点复杂了,希望有高手帮忙分析下有没有什么简单的算法或者数据结构的解决思路。题目本身也不算难吧,但自己实际写写也花了点时间,所以想提出问题,请各位高手帮忙分析分析,谢谢。
除了蛮力遍历没有什么高端的算法么?