কম্পিউটার

কীভাবে সাজানো অ্যারে থেকে সদৃশগুলি সরানো যায় এবং 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 RemoveDuplicatesFromSortedArrayAndReturnLength(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;
            }
         }
         return index;
      }
   }
   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.RemoveDuplicatesFromSortedArrayAndReturnLength(arr);
         Console.WriteLine(res);
         Console.ReadLine();
      }
   }
}

আউটপুট

5

  1. কিভাবে একটি অ্যারের মধ্যে 0 তম সূচীকৃত উপাদান সরাতে এবং জাভাস্ক্রিপ্টের বাকি উপাদানগুলি ফেরত দিতে হয়?

  2. জাভাস্ক্রিপ্টে এর দৈর্ঘ্য একই রেখে একটি অ্যারের থেকে সদৃশগুলি সরান

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

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