Java
 Computer >> コンピューター >  >> プログラミング >> Java

ソートされていない整数の特定の配列で欠落している正の数を見つけるために、Javaでプログラムを作成します


ソートされていない整数の配列を指定したとしましょう。タスクは、[0からn]の範囲で指定された配列に存在しない正の欠落数を見つけることです。たとえば、

入力-1

N = 9
arr = [0,2,5,9,1,7,4,3,6]

出力

8

説明 −指定されたソートされていない配列では、「8」が欠落している唯一の正の整数であるため、出力は「8」になります。

入力-2

N = 1
arr = [0]

出力

1

説明 −指定された配列では、「1」が欠落している唯一の正の整数であるため、出力は「1」です。

この問題を解決するためのアプローチ

この特定の問題を解決するためのいくつかのアプローチがあります。ただし、この問題は線形時間O(n)と一定空間O(1)で解決できます。

配列のサイズがnであり、[0からn]の範囲の要素が正確に含まれていることがわかっているためです。したがって、各要素とそのインデックスを「n」でXOR演算すると、結果の数値は、配列から欠落している一意の数値として見つけることができます。

  • [0からn]の範囲の要素を持つ配列のNサイズを入力します。

  • 整数関数findMissingNumber(int arr []、int size)は、配列とそのサイズを入力として受け取り、欠落している数値を返します。

  • nを取りましょう XOR演算を実行するための欠落番号として。

  • すべての配列要素を反復処理し、欠落している数、つまり n に関して、各配列要素とそのインデックスを使用してXOR演算を実行します。

  • 不足している番号を返します。

public class Solution {
   public static int findMissingNumber(int arr[], int size){
      int missing_no= size;
      for(int i=0;i<size;i++){
         missing_no^= i^arr[i];
      }
      return missing_no;
   }
   public static void main(String[] args){
      int arr[] = {0,4,2,1,6,3};
      int n = arr.length;
      int a=findMissingNumber(arr, n);
      System.out.println(a);
   }
}

出力

上記のコードを実行すると、次のように出力が生成されます

5

指定された配列{0,4,2,1,6,3}では、「5」が欠落しているため、5を返します。


  1. 円の周囲を見つけるJavaプログラム

    この記事では、円の周囲を見つける方法を理解します。円周は円の周囲長です。円周の距離です。 円周は式C=2𝜋 \ pi rで与えられます。ここで、\pi𝜋 =3.14、rは円の半径- 以下は同じのデモンストレーションです- 入力 入力が-であると仮定します Radius of the circle : 5 出力 必要な出力は-になります Perimeter of Circle is: 31.428571428571427 アルゴリズム Step 1 - START Step 2 - Declare 2 double values namely my_radius an

  2. 台形の領域を見つけるJavaプログラム

    この記事では、台形の領域を見つける方法を理解します。台形は、少なくとも1対の辺が互いに平行な四辺形の一種です。台形の平行な側面はベースと呼ばれ、台形の非平行な側面は脚と呼ばれます。台形とも呼ばれます。 台形の面積は、式-を使用して計算されます。 (height/2 * (side_1 + side_2). i.e. Area = ½ x (sum of the lengths of the parallel sides) x perpendicular distance between parallel sides 以下は同じもののデモンストレーションです。平行な辺aとbの長