搜尋

首頁  >  問答  >  主體

c++ - 一个算法:在极大的无序序列中寻找三个数和大于等于N的所有组合数量

比如:1 4 2 5 9 中寻找大于6的组合

1 2 4
1 2 5
1 2 9
1 4 5
1 4 9
2 4 5
2 4 9
4 5 9

一共8个组合。

如果是自然数序列,可以先排序再找到最小的满足组合,接下来只需要复杂度为n的算法就可以得到结果。但是如果序列的值是离散的,使时间复杂度尽可能小的算法应该怎么考虑呢?

备注:
数值大于10^16

PHP中文网PHP中文网2805 天前631

全部回覆(2)我來回復

  • 巴扎黑

    巴扎黑2017-04-17 11:23:56

    能加能比較用你自己說的這個演算法有什麼問題嗎?

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-17 11:23:56

    不是自然數就不能排序了嗎?數值大一點的話也可以排序的啊,並且複雜度只和你的數字個數有關啊

    回覆
    0
  • 取消回覆