查詢最小缺失數字的Java程式


最小缺失數字是指從元素流或陣列中缺失的最小數字。該流可能包含連續元素,也可能不包含連續元素。如果流是連續的,那麼最小缺失數字就是流中最小缺失數字。在本節中,我們將討論使用Java程式語言查詢元素流中最小缺失數字的各種方法。

問題陳述

給定一個整數流,找出該流中最小缺失的數字。

輸入1

arr=[1,2,3,5,6,7,8]

輸出1

4

說明 − 在上面的陣列“arr”中,缺少4,並且4是其中最小的。所以4是最小數字。由於序列不是連續的,這裡不適用丟失數字原理。


輸入2

arr=[1,2,3,5,6,7,8]

輸出2

4

說明 − 在上面的陣列“arr”中,缺少4,並且4是其中最小的。所以4是最小數字,並且由於序列是連續的,“4”也是給定陣列中丟失的數字。

不同的方法

以下是查詢最小缺失數字的方法:

方法1:使用迴圈語句

在這種方法中,我們用一些值初始化一個數組,然後呼叫自定義函式“missingNumber”,此函式通常透過迭代陣列的長度來返回陣列中缺失的值。如果陣列中沒有缺失元素,則返回陣列外第一個元素的值。

步驟如下

以下是使用迴圈語句查詢最小缺失數字的步驟:

  • 初始化一個數組。

  • 宣告一個函式missingNumber(arr, n)。

  • 從0迴圈到n,並與陣列中的元素匹配。迴圈

  • 我們將透過迴圈檢查陣列中是否存在所有元素。如果我們發現數組中不存在任何元素,則返回該元素。

  • 在main方法中呼叫該函式,並列印該函式返回的值

示例

在這個例子中,我們將使用Java提供的for迴圈語句來查詢最小缺失數字:

import java.util.*;
public class Main {
   public static void main(String[] args) {
      int[] arr = { 0, 1, 2, 3, 4, 5, 8,11 };
      int missing_number = missingNumber(arr, arr.length);
      System.out.println("The smallest missing number " + missing_number);
   }
   static int missingNumber(int[] arr, int n) {
      int i;
      for (i = 0; i < n; i++) {
         if (arr[i] != i) {
            return i;
         }
      }
      return i;
   }
}

輸出

The smallest missing number 6

方法2:在Java中使用HashSet

在這種方法中,我們用一些值初始化一個數組,然後呼叫自定義函式“missingNumber”,此函式通常透過將所有元素儲存在HashSet中,然後迭代陣列的長度並檢查每個值是否都在集合中來返回陣列中缺失的值;如果值不在集合中,則返回該值;否則,如果每個元素都存在,最後返回n,因為它是第一個缺失的數字。

步驟如下

以下是使用HashSet查詢最小缺失數字的步驟:

  • 初始化陣列arr

  • 宣告一個函式missingNumber(arr, n)。

  • 宣告一個HashSet,並使用add()將陣列的所有元素新增到集合中。

  • 迴圈遍歷0到n,並使用contains()查詢HashSet中是否存在該值,如果該值不存在,則返回該值。

  • 在main方法中呼叫該函式,並列印該方法返回的值。

HashSet − HashSet是無序的物件集合,不允許重複元素。

HashSet<datatype> objName = new HashSet<datatype>();	

contains() − 此方法檢查集合中是否存在某個值,並返回布林值。

setObjName.contains(value)

示例

在這個例子中,我們將使用Java中的HashSet集合和HashSet的不同內建方法來查詢最小缺失數字:

import java.util.HashSet;
public class Main {
   public static void main(String[] args) {
      int[] arr = { 0, 1, 2, 3, 4, 5, 8,11 };
      int missing_number = missingNumber(arr, arr.length);
      System.out.println("The smallest missing number is " + missing_number);
   }
   static int missingNumber(int[] arr, int n) {
      HashSet<Integer> set = new HashSet<>();
      for (int i = 0; i < n; i++) {
         set.add(arr[i]);
      }
      for (int i = 0; i < n; i++) {
         if (!set.contains(i)) {
            return i;
         }
      }
      return n;
   }
}

輸出

The smallest missing number is 6

因此,在本文中,我們討論了使用Java程式語言查詢最小缺失數字的不同方法。

更新於:2024年8月16日

1K+ 次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.