在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+ 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.