Rumah  >  Artikel  >  Java  >  Program Java untuk mencari nombor yang hilang

Program Java untuk mencari nombor yang hilang

WBOY
WBOYke hadapan
2023-08-27 17:13:06602semak imbas

Program Java untuk mencari nombor yang hilang

Nombor yang tiada ialah nombor yang tiada dalam aliran atau tatasusunan elemen berturut-turut. Dalam bahagian ini, kita akan membincangkan pelbagai cara untuk mencari nombor yang hilang dalam aliran elemen menggunakan bahasa pengaturcaraan java.

Contoh nombor yang hilang dalam tatasusunan

Nombor yang tiada ialah nombor yang tiada daripada jujukan nombor berturut-turut dalam tatasusunan.

Pertimbangkan tatasusunan;

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

Dalam tatasusunan 'arr' di atas, 7 hilang, jadi 7 adalah nombor yang hilang

Contoh 2

Pertimbangkan tatasusunan;

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

Dalam array 'arr' di atas, 10 hilang, jadi 10 adalah nombor yang hilang

Kini, kita akan membincangkan pelbagai cara untuk mencari nombor yang hilang dalam aliran di Jawa.

Kaedah 1: Gunakan kaedah stream() dan sum()

Dalam kaedah ini kita menggunakan fungsi stream() dan menukar tatasusunan kepada strim dan kemudian menggunakan fungsi sum() untuk mengira jumlah aliran dan menyimpannya dalam pembolehubah 'actualsum' dan kemudian kita mengira jumlah yang dijangka menggunakan formula n *(n+1)/2 , kemudian kita mencari nombor yang hilang menggunakan jumlah jangkaan - jumlah sebenar.

Algoritma

  • Mulakan tatasusunan dengan beberapa nilai.

  • Kira jumlah tatasusunan menggunakan kaedah stream() dan sum()

  • Kira panjang tatasusunan dan cari jumlah jangkaan nombor berturut-turut menggunakan formula jumlah n sebutan.

  • Tolak nilai dan jumlah yang dijangkakan, tetapkan kepada pembolehubah dan cetaknya.

Stream() - Kaedah 'Stream()' digunakan untuk mencipta aliran elemen supaya kita boleh menggunakan kaedah penapis(), map(), reduce(), dsb. untuk memproses data p>

Arrays.stream(collection)

sum() - Kaedah ini digunakan untuk mengira jumlah semua elemen dalam koleksi.

stream.sum()

Contoh

Dalam contoh ini, kami akan menggunakan kaedah stream() dan sum() untuk mencari nombor yang hilang melalui java.

import java.util.Arrays;
public class Main {
   public static void main(String[] args) {
      int[] array = {1, 2, 3, 5};
      int sum = Arrays.stream(array).sum(); 
      int n = array.length + 1; 
      int expectedvalue = (n * (n + 1)) / 2; 
      int lostnumber = expectedvalue - sum; 
      System.out.println("lost number " + lostnumber);
   }
}

Output

lost number 4

Kaedah 2: Gunakan XOR

Dalam kaedah ini kita mengira XOR daripada n nilai dan menyimpan dalam expectedValue pembolehubah, kemudian mengira XOR daripada actualValue dan akhirnya kita melakukan XOR antara ExpectedValue dan actualValue untuk mendapatkan jumlah yang hilang.

Algoritma

  • Mulakan tatasusunan dengan beberapa nilai.

  • Kira panjang tatasusunan dan tambah 1 kerana saya rasa nombor sebenar dalam tatasusunan mestilah tatasusunan.length+1 dan tetapkan ia kepada pembolehubah "n".

  • Tetapkan nilai jangkaan kepada 1 dan kirakan nilai jangkaan menggunakan gelung for menggunakan operator XOR sehingga n.

  • Tetapkan nilai jangkaan kepada tatasusunan[0] dan kira nilai sebenar unsur-unsur yang terdapat dalam tatasusunan menggunakan gelung for menggunakan operator XOR.

  • Kira nombor yang hilang menggunakan pengendali XOR bagi nilai dijangka dan sebenar dan cetak

Operasi XOR (^) - Operasi XOR menjalankan operasi mengikut arah bit dan mengembalikan 1 jika kedua-dua bit adalah 1, jika tidak ia mengembalikan 0. Ia diwakili oleh ^.

A ^ b // where 'a' and 'b' are integers.	

Contoh

Dalam contoh ini kita akan menggunakan operator XOR dan mencari nombor yang hilang menggunakan java.

public class Main {
   public static void main(String[] args) {
      int[] array = {1, 2, 3, 5}; // input array with missing number
      int n = array.length + 1; // total number of elements if no number was missing
      int expectedValue = 1; // expected XOR value if no number was missing
      for (int i = 2; i <= n; i++) {
         expectedValue ^= i; // XOR all elements from 1 to n to get expected value
      }
      int actualValue = array[0]; // start with first element of array
      for (int i = 1; i < array.length; i++) {
         actualValue ^= array[i]; // XOR all elements of array to get actual value
      }
      int lostNumber = expectedValue ^ actualValue; // XOR expected and actual values to get lost number
      System.out.println("The lost number is " + lostNumber);
   }
}

Output

The lost number is 4

Kaedah 3: Gunakan HashSet

Dalam contoh ini, kami akan menggunakan struktur data Hashset dan kaedah Hashset terbina untuk mencari nombor yang hilang menggunakan java.

Algoritma

  • Mulakan tatasusunan dengan beberapa nilai.

  • Cipta set cincang dan gunakan gelung for untuk mengulang tatasusunan dan tambahkan nilai pada set cincang.

  • Gunakan gelung for, ulangi i ke array.length+1 dan gunakan kaedah contains() untuk menyemak nilai yang hilang dalam koleksi dan mencetak nombor yang hilang.

HashSet - Set cincang ialah koleksi objek tidak tertib yang tidak membenarkan unsur pendua.

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

contains() - Kaedah ini menyemak sama ada nilai wujud dalam koleksi dan mengembalikan nilai boolean.

setObjName.contains(value)

Contoh

Dalam kaedah ini kita menyimpan semua elemen tatasusunan dalam HashSet dan kemudian lelaran daripada 1 kepada tatasusunan.nilai panjang+1 dan semak sama ada semua nilai terdapat dalam set, jika tiada nilai hadir maka ini adalah Hilang nilai dan mencetaknya.

import java.util.Arrays;
import java.util.HashSet;

public class Main {
   public static void main(String[] args) {
      int[] array = {1, 2, 3, 5};
      HashSet<Integer> set = new HashSet<Integer>();
      for (int i : array) {
         set.add(i); 
      }
      for (int i = 1; i <= array.length + 1; i++) {
         if (!set.contains(i)) { 
            System.out.println("lost number: " + i);
            break;
         }
      }
   }
}

Output

lost number: 4

Jadi, dalam artikel ini, kami mempelajari cara yang berbeza untuk mencari nombor yang hilang menggunakan bahasa pengaturcaraan java.

Atas ialah kandungan terperinci Program Java untuk mencari nombor yang hilang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam