求数组中若干个元素之和等于给定值 - Virtual_Func的博客 - CSDN博客
这个问题的基础版本是:在数组中找两个元素,使其之和等于某个给定值。解法简单:将数组排序后,用两个指针分别位于数组首与数组尾,然后计算两个指针所指元素的和,若大于给定的元素,则尾部的指针向前移动;若小于给定的元素,则首部的指针向后移动。
但该问题提升后,成为了子集和问题,这是一个NP问题。在leetcode上还有升级版本的问题:求给定数组中四个元素之和等于给定元素的所有元素的子集。该问题,只能用暴力搜索,加点启发式的暴力搜索,在数量到两个数之后用上述的两数之和的方法。
看了一个作者的博客里面的例子,理解了在数组中找若干个元素之和等于给定值的方法。作者博客见:点击打开链接
举一个简单的适合自己理解的例子:
数组为: [1,2,3,4,5,6]。找给定值 12 。元素个数不限定,只要找到的元素之和=12即可
Read full article from 求数组中若干个元素之和等于给定值 - Virtual_Func的博客 - CSDN博客
No comments:
Post a Comment