在Java中查找和为最大的两个数组元素?


数组中两个元素的和最大,意味着我们需要找到两个最大的数组元素,它们最终会得到最大的可能和。

在这篇文章中,我们将学习如何在Java中找到两个元素的最大和。

举几个例子:

例1

假设我们有如下数组:

[10, 2, 3, -5, 99, 12, 0, -1]

在这个数组中,最大的元素是99,第二大的元素是12。

最大和 = 99 + 12

因此,这个数组中两个元素的最大和是111。

例2

假设我们有如下数组:

[556, 10, 259, 874, 123, 453, -96, -54, -2369]

在这个数组中,最大的元素是874,第二大的元素是556。

最大和 = 874 + 556

因此,这个数组中两个元素的最大和是1430。

例3

假设我们有如下数组:

[55, 10, 29, 74, 12, 45, 6, 5, 269]

在这个数组中,最大的元素是269,第二大的元素是74。

最大和 = 269 + 74

因此,这个数组中两个元素的最大和是343。

算法

算法1

步骤1 - 使用for循环找到数组中最大和第二大的元素。

步骤2 - 求它们的和。

步骤3 - 打印和。

算法2

步骤1 - 对数组元素进行排序。

步骤2 - 取数组的最后一个和倒数第二个元素。

步骤3 - 求它们的和。

步骤4 - 打印和。

语法

要对数组进行排序,我们需要使用java.util包中Arrays类的sort()方法。

以下是使用该方法对任何数组进行升序排序的语法:

Arrays.sort(array_name);

其中,'array_name' 指的是要排序的数组。

多种方法

我们提供了不同的方法来解决这个问题。

  • 使用for循环查找最大和

  • 使用Arrays.sort查找最大和

让我们逐一查看程序及其输出。

方法1:使用for循环

在这种方法中,我们使用for循环迭代数组元素,以找出最大和第二大的元素。这两个元素将给出最大和。

示例

public class Main {
   public static void main(String[] args) {
      // The array elements
      int arr[] = { 10, 2, 3, -5, 99, 12, 0, -1 };

      // Storing the first element in both variables
      int first = arr[0], second = arr[0];

      // For loop to iterate the elements from 1 to n
      // to find the first largest element
      for (int i = 0; i < arr.length; i++) {

         // If array element is larger than current largest element, then swap
         if (arr[i] > first)
         first = arr[i];
      }

      // For loop to iterate the elements from 1 to n
      // to find the second largest element
      for (int i = 0; i < arr.length; i++) {

         // If array element is larger than current largest element and not equals to
         // largest element, then swap
         if (arr[i] > second && arr[i] != first)
            second = arr[i];
      }

      // Print the sum
      System.out.println("Largest sum = " + (first + second));
      System.out.println("The elements are " + first + " and " + second);
   }
}

输出

Largest sum = 111
The elements are 99 and 12

方法2:使用Arrays.sort

在这种方法中,我们使用Arrays.sort()方法对数组进行排序。然后,我们取最后和倒数第二个索引处的元素。由于数组已经排序,这两个元素将给出最大和。

示例

import java.util.Arrays;
public class Main {
   public static void main(String[] args) {
      // The array elements
      int arr[] = { 10, 2, 3, -5, 99, 12, 0, -1 };

      // Sort the array using the sort method from array class
      Arrays.sort(arr);

      // Storing the last element as largest and second last element as second largest
      int first = arr[arr.length - 1], second = arr[arr.length - 2];

      // Print the maximum sum
      System.out.println("Maximum sum = " + (first + second));
      System.out.println("The elements are " + first + " and " + second);
   }
}

输出

Maximum sum = 104
The elements are 99 and 12

在这篇文章中,我们探讨了在Java中查找数组中和最大的两个元素的不同方法。

更新于:2023年3月6日

3K+ 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告