কম্পিউটার

কীভাবে সাজানো অ্যারে থেকে সদৃশগুলি সরানো যায় এবং C# ব্যবহার করে নন-ডুপ্লিকেট অ্যারে ফেরত দেওয়া যায়?


অ্যারেটি ইতিমধ্যেই সাজানো হয়েছে, আমরা দুটি পয়েন্টার ii এবং jj রাখতে পারি, যেখানে ii হল ধীর-রানার যখন jj হল দ্রুত-রানার। যতক্ষণ nums[i] =nums[j]nums[i]=nums[j], আমরা ডুপ্লিকেট এড়ানোর জন্য jj বৃদ্ধি করি।

যখন আমরা nums[j] !=nums[i] এর সম্মুখীন হই তখন ডুপ্লিকেট রান শেষ হয়ে যায় তাই আমাদের অবশ্যই এর মান nums[i + 1]nums[i+1] এ কপি করতে হবে। ii তারপর বর্ধিত হয় এবং আমরা একই প্রক্রিয়াটি আবার পুনরাবৃত্তি করি যতক্ষণ না jj অ্যারের শেষে পৌঁছায়। একটি নতুন অ্যারে তৈরি করুন ফিল্টার করা অ্যারে থেকে ইনডেক্স পর্যন্ত সমস্ত উপাদান অনুলিপি করুন এবং নতুন অ্যারে ফেরত দিন।

সময় জটিলতা − O(N)

উদাহরণ

using System;
namespace ConsoleApplication{
   public class Arrays{
      public int[] RemoveDuplicatesFromSortedArrayAndReturnArray(int[] arr){
         int index = 1;
         for (int i = 0; i < arr.Length - 1; i++){
            if (arr[i] != arr[i + 1]){
               arr[index] = arr[i + 1];
               index++;
            }
            else{
               continue;
            }
         }
         int[] newarr = new int[index];
         for (int i = 0; i < index; i++){
            newarr[i] = arr[i];
         }
         return newarr;
      }
   }
   class Program{
      static void Main(string[] args){
         Arrays a = new Arrays();
         int[] arr = { 0, 0, 1, 1, 1, 2, 2, 3, 3, 4 };
         int[] res = a.RemoveDuplicatesFromSortedArrayAndReturnArray(arr);
         for (int i = 0; i < res.Length; i++){
            Console.WriteLine(res[i]);
         }
         Console.ReadLine();
      }
   }
}

আউটপুট

0 1 2 3 4

  1. Windows 10 টাস্কবার থেকে কিভাবে খবর এবং আবহাওয়া সরাতে হয়

  2. অ্যান্ড্রয়েডে বাছাই করা লিঙ্ক তালিকা থেকে ডুপ্লিকেটগুলি কীভাবে সরিয়ে ফেলা যায়?

  3. ডুপ্লিকেট অপসারণের জন্য রুবি ইউনিক পদ্ধতিটি কীভাবে ব্যবহার করবেন

  4. কিভাবে ব্যাকআপ থেকে সদৃশগুলি সনাক্ত এবং সরাতে হয়