【问题标题】:checking an array of ints to see if the sum of any two elements equals another检查整数数组以查看任何两个元素的总和是否等于另一个
【发布时间】:2015-04-16 12:50:29
【问题描述】:

在任何人说之前...是的...这是家庭作业。 基本上,我将得到一个整数数组,我想编写一个程序来接受该数组,然后检查它是否有任何两个元素的总和等于第三个元素。

所以如果数组是 [1 2 3 4] 那么它是“是”,因为 1+2=3 和 1+3=4 但如果是 [1 1 1 1] 则为“否”。

我已经编写了所有其他方法,我只需要执行我上面解释的逻辑,最好使用递归(因为这是赋值)。

老实说,我什至不知道从哪里开始递归,以前从未使用过。

【问题讨论】:

  • 这个方法最简单的写法其实就是不用递归。
  • 我建议您查看 codingbat.com 并查看那里的 java 递归部分。它确实帮助一些人掌握了递归。
  • @Mike Hawk [1,2,0,4]的输出是什么

标签: java arrays recursion int sum


【解决方案1】:

这里我用过Integer[]

Integer[] arr = new Integer[] { 1, 2, 3, 4 };
for (int i = 0; i < arr.length - 1; i++) {
    if(arr[i] == 0) {
         continue;
    }
    for (int k = i + 1; k < arr.length; k++) {
        if (arr[k] != 0
                && Arrays.asList(arr).contains(arr[i] + arr[k])) {
            return true;
        }
    }
}
return false;

Arrays.asList(arr)arr 转换为列表,contains(arr[i] + arr[k]) 将检查arr 中是否存在两个元素的总和

【讨论】:

    【解决方案2】:

    您可以使用它来查找数组中每两个数字的总和,然后将它们与数组的内容进行比较。

     for(int i = 0; i < array.length; i++) {
            for(int j = 0; j < array.length; j++) {
                int sum = array[i] + array[j];
                for(int k = 0; k < array.length; k++) {
                    if(array[k] == sum)
                        return true;
                    else
                        return false;
                }
            }
        }
    

    这可能不是最有效的,但它确实有效,这正是您所寻找的。​​p>

    【讨论】:

      【解决方案3】:

      你总是可以像这样使用 for 循环:

      for(int i = 0; i+2 < array.length; i++) //i + 2 because the last two element pair won't be used
              if(array[i+2] == array[i] + array[i+1]){return true;} //Or whatever else you want to return
              else{return false;}
      }
      

      【讨论】:

      • 这不完整。这只会检查数组中的连续数字。
      • 哦抱歉误读了这个问题。那你就可以像嵌套循环一样了,对吧?
      • 是的!您可以使用嵌套循环,尽管这种方法效率最低。分而治之可能是最好的方法,但不确定
      • 你将如何分而治之?
      猜你喜欢
      • 2023-04-02
      • 2022-01-09
      • 2021-08-31
      • 2016-05-28
      • 2023-03-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多