নিচে তিনটি পদ্ধতি দেওয়া হলো:
প্রথম পদ্ধতিতে
n(n+1)/2 ফর্মুলা ব্যবহার করুন যা এলিমেন্টের সংখ্যা গণনা করে এবং তারপর অ্যারেতে থাকা এলিমেন্টগুলো বিয়োগ করুন।
দ্বিতীয় পদ্ধতিতে
একটি নতুন অ্যারে তৈরি করুন এবং পুরো অ্যারেতে ট্রাভার্স করুন এবং যে সংখ্যাগুলো পাওয়া যায় সেগুলো false করুন।
তৃতীয় পদ্ধতিতে
XOR অপারেশন ব্যবহার করুন। যা মিসিং নম্বর দেয়।
উদাহরণ
using System;
namespace ConsoleApplication
{
public class Arrays
{
public int MissingNumber1(int[] arr)
{
int totalcount = 0;
for (int i = 0; i < arr.Length; i++)
{
totalcount += arr[i];
}
int count = (arr.Length * (arr.Length + 1)) / 2;
return count - totalcount;
}
public int MissingNumber2(int[] arr)
{
bool[] tempArray = new bool[arr.Length + 1];
int element = -1;
for (int i = 0; i < arr.Length; i++)
{
int index = arr[i];
tempArray[index] = true;
}
for (int i = 0; i < tempArray.Length; i++)
{
if (tempArray[i] == false)
{
element = i;
break;
}
}
return element;
}
public int MissingNumber3(int[] arr)
{
int result = 1;
for (int i = 0; i < arr.Length; i++)
{
result = result ^ arr[i];
}
return result;
}
}
class Program
{
static void Main(string[] args)
{
Arrays a = new Arrays();
int[] arr = { 0, 1, 3, 4, 5 };
Console.WriteLine(a.MissingNumber1(arr));
Console.WriteLine(a.MissingNumber2(arr));
Console.WriteLine(a.MissingNumber3(arr));
Console.ReadLine();
}
}
}
আউটপুট
2 2 2