在数组中添加n个整数以获取Java中的目标数字?

时间:2016-04-26 15:56:26

标签: java arrays loops compare target

将数组作为用户的输入。该数组包含整数。添加一些,全部,或者只是一个就足够了,以获得尽可能接近100的总和。

  • 数组可以包含1-100个整数
  • 数组中的每个整数的值都在1-100之间,有些可能是相同的。数组中的随机顺序
  • 没有限制应该添加多少才能尽可能接近100
  • 如果可能有多种组合或给出相等的答案,则同样接近100,如99和101,应选择最高。

我的问题是我真的不知道如何处理循环。我已经尝试过两个嵌套,但是我发现不知道数组中可能需要多少个整数才能计算。

我的循环到目前为止循环每个整数:

//looping over all integers in the array
for (int i = 0; i < myArray.length; i++) {
    //check already here if it is close to 100?
    //compare the integer above to the next
    for (int j = i + 1; nextWeight < myArray.length; j++) {
        //the results should be saved temporary to comparision to new sums
    }
}

我知道它并不多,我知道它可能以某种方式涉及动态编程。

有没有人有任何可以帮助我的想法?

1 个答案:

答案 0 :(得分:0)

通过我对您的问题的解释,您最大的问题在于您的算法。您应该首先决定算法,然后转到编码。如果我想做你要问的事情,我会先按升序或降序对数组进行排序。有许多排序算法。但是,我认为你所看到的是一个子集求和问题,它可以通过递归二叉树遍历算法来解决。我不会给你代码,但是如果你有时间去研究它就会有所帮助。