কম্পিউটার

C# ব্যবহার করে প্রদত্ত লক্ষ্যের কাছাকাছি অনন্য ট্রিপলেটটি কীভাবে খুঁজে পাবেন?


দুই পয়েন্টার প্যাটার্ন এবং ট্রিপলেট সাম থেকে শূন্যের মতো। আমরা অ্যারের মাধ্যমে পুনরাবৃত্তি করার জন্য একই পদ্ধতি অনুসরণ করতে পারি, একবারে একটি সংখ্যা গ্রহণ করতে পারি। প্রতিটি ধাপে, আমরা ট্রিপলেট এবং লক্ষ্য সংখ্যার মধ্যে পার্থক্য সংরক্ষণ করব, এবং প্রতিটি ধাপে আমরা এটিকে এখন পর্যন্ত ন্যূনতম লক্ষ্য পার্থক্যের সাথে তুলনা করব, যাতে শেষ পর্যন্ত, আমরা নিকটতম যোগফলের সাথে ট্রিপলেট ফেরত দিতে পারি।

সময় জটিলতা

অ্যারে সাজানোর জন্য O(N* logN) লাগবে। সামগ্রিকভাবে ThreeSumClosest() O(N * logN + N^2) নেবে, যা অচিহ্নিতভাবে O(N^2) এর সমতুল্য।

মহাকাশ জটিলতা

উপরের অ্যালগরিদমের স্থান জটিলতা হবে O(N) যা সাজানোর জন্য প্রয়োজন।

উদাহরণ

public class Arrays{
   public int ThreeSumClosest(int[] num, int target){
      if (num == null || num.Length == 0){
         return -1;
      }
      int[] nums = num.OrderBy(x => x).ToArray();
      int initialclosest = nums[0] + nums[1] + nums[2];
      for (int i = 0; i < nums.Count(); i++){
         int left = i + 1;
         int right = nums.Length - 1;
         while (left < right){
            int newClosest = nums[i] + nums[left] + nums[right];
            if (Math.Abs(newClosest - target) < Math.Abs(initialclosest - target)){
               initialclosest = newClosest;
            }
            if (newClosest == target){
               return newClosest;
            }
            else if (newClosest < target){
               left++;
            }
            else
            {
               right--;
            }
         }
      }
      return initialclosest;
   }
}

static void Main(string[] args){
   Arrays s = new Arrays();
   int[] nums = { -1, 2, 1, -4 };
   Console.WriteLine(s.ThreeSumClosest(nums, 1));
}

আউটপুট

2

  1. একটি সম্পত্তি ব্যবহার করে জ্যাগড অ্যারের দৈর্ঘ্য কীভাবে খুঁজে পাবেন?

  2. Numpy ব্যবহার করে একটি প্রদত্ত ম্যাট্রিক্সের সমস্ত উপাদানের যোগফল কীভাবে খুঁজে পাওয়া যায়?

  3. পাইথন ব্যবহার করে প্রদত্ত বছরের প্রথম তারিখ কীভাবে খুঁজে পাবেন?

  4. পাইথন ব্যবহার করে একটি প্রদত্ত সংখ্যার সংখ্যার সংখ্যা কীভাবে খুঁজে পাবেন?