Java 阵列处理算法

Java 阵列处理算法,java,arrays,Java,Arrays,给定一个整数数组,从数组中给出两个整数,其相加得到一个数字N。这是最近在博客上讨论过的。有关解决方案,请参阅评论部分 从本质上讲,解决这个问题最有效的方法是将数字放入哈希_映射中,然后第二次在数组中循环检查每个元素x,如果哈希_映射中存在元素(N-x) 您可以从那里进行一些优化,但这是总体思路。遵循以下步骤: 1.使用O(n logn)中的合并排序按降序对数字进行排序(也可以是升序,但本文假定它们按降序排序) 2.使用两个指针变量,一个指向起始元素(比如p1),另一个指向最后一个元素(比如p2)

给定一个整数数组,从数组中给出两个整数,其相加得到一个数字N。

这是最近在博客上讨论过的。有关解决方案,请参阅评论部分

从本质上讲,解决这个问题最有效的方法是将数字放入哈希_映射中,然后第二次在数组中循环检查每个元素x,如果哈希_映射中存在元素(N-x)

您可以从那里进行一些优化,但这是总体思路。

遵循以下步骤:

1.使用O(n logn)中的合并排序按降序对数字进行排序(也可以是升序,但本文假定它们按降序排序)

2.使用两个指针变量,一个指向起始元素(比如p1),另一个指向最后一个元素(比如p2)

3.现在添加*p1+*p2(临时总和=*p1+*p2),并将其与所需总和进行比较

重复这些步骤,直到p1>p2

i、 如果sum==temp_sum,那么我们的工作就结束了

ii.如果总和>温度总和,则减小p2,使其指向比其当前值更大的值,以便温度总和可以增加


iii.如果sum像往常一样:您尝试了什么?只是好奇,如果这个问题被扩展,是否有人预见会在任何地方得到正态分布?-1因为之前没有尝试过思考asking@Lambert以目前的形式,答案是“不”。要将这个问题与分布关联起来,需要对阵列组件进行一些假设。嗯,好的。我在想,如果我们把极限设为2到无穷大(关于“两个整数”的部分),当整数范围从(-1,1)扩展到(-无穷大,无穷大),我们不是得到了一个正态(ish)分布,对于每个和有多少种方法?(我还没有试过这道数学题,但我认为它似乎是这样的…)