具体链接: https://leetcode-cn.com/problems/number-of-subsequences-that-satisfy-the-given-sum-condition/
思路
因题意中,不要求数组的连续,只需要求相应的组合即可。
所以,这里可以先进行数组的排序。 遍历当前的数组,以当前数为基准,求 target - nums[i] 的值,在数组中,所处于的 Index 值。(可通过 bisect.bisect 的二分求解来得到此值。)
当得到此 index 值,以包含当前 nums[i] ,来求一个可以的组合数。其选择的方案为从 i + 1
至 index
的数,可选或者不选,一共的组合数为:
1
|
|
所以,最后的结果数,就是将这些结果累加即可。
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
注意事项
在其他语言中,因求这个 2 的幂数,会存在溢出或者超时的情况。所以,都会使用预计算,这些 2 的幂数的结果。方便后续的加速求值。