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

C++-এ সকল ১ কি K দূরত্বে আছে কিনা চেক


একটি বাইনারি অ্যারে nums এবং ইন্টিজার k দেওয়া আছে। চেক করতে হবে সব ১ একে অপরের থেকে কমপক্ষে k পজিশন দূরত্বে আছে কিনা।

ইনপুট: nums = [1,0,0,0,1,0,0,1], k = 2 → আউটপুট: true

সমাধানের ধাপগুলো:

  • last := -1 (শেষ ১ এর পজিশন)

  • অ্যারে ট্রায়ভার্স করব:

    • যদি nums[i] == 1 হয়:

      • যদি last == -1 অথবা (i - last - 1) >= k হয়, তবে last = i

      • অন্যথায় false রিটার্ন

  • লুপ শেষে true রিটার্ন

উদাহরণ

নিচের কোডটি দেখুন −

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

class Solution {
public:
    bool kLengthApart(vector<int>& nums, int k) {
        int last = -1;
        for (int i = 0; i < nums.size(); i++) {
            if (nums[i] == 1) {
                if (last == -1 || (i - last - 1) >= k)
                    last = i;
                else
                    return false;
            }
        }
        return true;
    }
};

int main() {
    Solution ob;
    vector<int> v = {1,0,0,0,1,0,0,1};
    cout << (ob.kLengthApart(v, 2));
}

ইনপুট

{1,0,0,0,1,0,0,1}

আউটপুট

1

  1. সি++-এ তিনটি বিন্দু সমরৈখিক (collinear) কিনা তা যাচাই করার প্রোগ্রাম

  2. পাইথনে যাচাই করুন অ্যারে-এর সব উপাদান আলাদা (distinct) কিনা

  3. পাইথনে সব প্যালিনড্রোমিক সাবস্ট্রিং বিজোড় দৈর্ঘ্যের কিনা যাচাই করার প্রোগ্রাম

  4. পাইথনে চেক করা সব লিস্ট এলিমেন্ট একই কিনা