从每个数组中提取一个数字,以使数字总和为0?

R4chi7

我正在为我的校园安置做准备。我遇到一个问题,它像这样:

给定3个数组,例如

array 1: {2,1,4,7}
array 2: {3,-3,-8,0}
array 3: {-1,-4,-7,6}

我们必须从每个数组中提取一个数字并形成三元组,以使三元组中的数字总和为0,或者为该事实的任何数字。

例如,对于上述情况,解决方案之一可以是 {2, -8, 6}

目前,除了“蛮力”方法以外,我还没有其他解决方案需要花费O(n^3)时间。如何在较短的时间内做到这一点?

提前致谢。

亨里克

您可以在O(n ^ 2)中进行操作:

  • 将第二个数组升序排列
  • 将第三个数组降序排列
  • 循环遍历第一个数组。
  • 第二个或第三个数组的增量索引,取决于和是负数还是正数。

    // Asssume array2 and array3 are sorted as mentioned above
    // array2: {-8,-3,0,3}
    // array3: {6,-1,-4,-7}
    foreach (e1 in array1)
    {
        int i2 = 0;
        int i3 = 0;
        while (i2 < array2.Length && i3 < array3.Length)
        {
            int sum = e1 + array2[i2] + array3[i3];
            if (sum == 0) Console.WriteLine( e1, array2[i2], array3[i3]);
            if (sum < 0) ++i2 else ++i3;
        }
    

    }

相关:在数组中查找三个和,它们的总和最接近给定数字

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

一个数字的数字总和

来自分类Dev

从PHP中的另一个数字中提取一个数字

来自分类Dev

一个数字与一个数字数组之差的总和

来自分类Dev

从变量中提取第一个数字

来自分类Dev

从网站表格中提取一个数字

来自分类Dev

一个数字的总和

来自分类Dev

为每个发票分配一个数字ID?

来自分类Dev

为数组的每个项目增加和减少一个数字

来自分类Dev

为数组中的每个元素添加一个数字[Double]

来自分类Dev

从一串数字和文本中提取一个数字

来自分类Dev

在pandas groupby中提取相同数字序列中的第一个数字

来自分类Dev

从序列中选择三个数字,以使它们的总和小于一个值

来自分类Dev

我想给我的每个数组元素一个数字

来自分类Dev

算法问题:从五个数组中每个选择一个数字,检查它们的总和是否可以为2018?

来自分类Dev

如何在mysql中提取数据的第一个数字?

来自分类Dev

bash awk从一个数字列中提取和求和值

来自分类Dev

Excel:从混合内容单元格中提取一个数字

来自分类Dev

如何在mysql中提取数据的第一个数字?

来自分类Dev

bash从文件名中提取第一个数字

来自分类Dev

从数字数组中获取一个数字

来自分类Dev

写一个数字作为连续素数的总和

来自分类Dev

找出一个数字的总和(用c表示)

来自分类Dev

从嵌套的数组中提取一个数组

来自分类Dev

从PHP中的另一个数组中提取一个数组

来自分类Dev

如何查看一个数组中的每个数字是否在另一个数组中平方?

来自分类Dev

选择包含每个数字但不仅包含一个数字的某些值

来自分类Dev

如何检查一个数字是否可以被列表中的每个数字整除

来自分类Dev

最后一个数字结束后打印每个数字的空格数

来自分类Dev

将列表的每个元素乘以一个数字

Related 相关文章

  1. 1

    一个数字的数字总和

  2. 2

    从PHP中的另一个数字中提取一个数字

  3. 3

    一个数字与一个数字数组之差的总和

  4. 4

    从变量中提取第一个数字

  5. 5

    从网站表格中提取一个数字

  6. 6

    一个数字的总和

  7. 7

    为每个发票分配一个数字ID?

  8. 8

    为数组的每个项目增加和减少一个数字

  9. 9

    为数组中的每个元素添加一个数字[Double]

  10. 10

    从一串数字和文本中提取一个数字

  11. 11

    在pandas groupby中提取相同数字序列中的第一个数字

  12. 12

    从序列中选择三个数字,以使它们的总和小于一个值

  13. 13

    我想给我的每个数组元素一个数字

  14. 14

    算法问题:从五个数组中每个选择一个数字,检查它们的总和是否可以为2018?

  15. 15

    如何在mysql中提取数据的第一个数字?

  16. 16

    bash awk从一个数字列中提取和求和值

  17. 17

    Excel:从混合内容单元格中提取一个数字

  18. 18

    如何在mysql中提取数据的第一个数字?

  19. 19

    bash从文件名中提取第一个数字

  20. 20

    从数字数组中获取一个数字

  21. 21

    写一个数字作为连续素数的总和

  22. 22

    找出一个数字的总和(用c表示)

  23. 23

    从嵌套的数组中提取一个数组

  24. 24

    从PHP中的另一个数组中提取一个数组

  25. 25

    如何查看一个数组中的每个数字是否在另一个数组中平方?

  26. 26

    选择包含每个数字但不仅包含一个数字的某些值

  27. 27

    如何检查一个数字是否可以被列表中的每个数字整除

  28. 28

    最后一个数字结束后打印每个数字的空格数

  29. 29

    将列表的每个元素乘以一个数字

热门标签

归档