কম্পিউটার টিউটোরিয়াল

C++-এ সার্চ ইনসার্ট পজিশন (Search Insert Position)


একটি সোর্টেড অ্যারে এবং টার্গেট ভ্যালু দেওয়া আছে। টার্গেট পাওয়া গেলে তার ইন্ডেক্স, না পাওয়া গেলে সেটি কোথায় ইনসার্ট করা উচিত তার ইন্ডেক্স রিটার্ন করুন।

উদাহরণ: [1,3,4,6,6], target=5 -> 3 (ইন্ডেক্স ৩-এ ৫ ইনসার্ট করলে [1,3,4,5,6,6])।

সমাধানের ধাপসমূহ

  • বাইনারি সার্চ ব্যবহার করুন।
  • low=0, high=n-1।
  • যখন low <= high:
    • mid = low + (high-low)/2।
    • যদি A[mid] == target, mid রিটার্ন।
    • যদি A[mid] > target, high = mid-1, pos = mid।
    • অন্যথায় low = mid+1, pos = mid+1।
  • pos রিটার্ন করুন।

C++ কোড উদাহরণ

#include <bits/stdc++.h>
using namespace std;

class Solution {
public:
    int searchInsert(vector<int>& A, int target) {
        int n = A.size();
        if (n < 1) return 0;
        int low = 0, high = n-1, mid, pos;
        while (low <= high) {
            mid = low + (high-low)/2;
            if (A[mid] == target) return mid;
            else if (A[mid] > target) { high = mid-1; pos = mid; }
            else { low = mid+1; pos = mid+1; }
        }
        return pos;
    }
};

int main() {
    Solution ob;
    vector<int> v = {1,3,4,6,6};
    cout << ob.searchInsert(v,5);
    return 0;
}

ইনপুট

{1,3,4,6,6},5

আউটপুট

3
  1. C++-এ ইউনিক বাইনারি সার্চ ট্রি গণনা

  2. C++-এ ইউনিক বাইনারি সার্চ ট্রি II - সব ট্রি জেনারেট করা

  3. ২-৩ ট্রি (2-3 Trees) - সার্চ ও ইনসার্শন C/C++-এ

  4. বাইনারি সার্চ C++ প্রোগ্রামে