কম্পিউটার

সমস্ত 1-এর ন্যূনতম দৈর্ঘ্য K C++-এ দূরে রয়েছে কিনা তা পরীক্ষা করুন


ধরুন আমাদের 0s এবং 1s এর একটি অ্যারে সংখ্যা এবং একটি পূর্ণসংখ্যা k আছে, আমাদের চেক করতে হবে যে সমস্ত 1 এর অন্তত k স্থান একে অপরের থেকে দূরে আছে কিনা, অন্যথায়, False ফেরত দিন।

সুতরাং, যদি ইনপুটটি nums =[1,0,0,0,1,0,0,1], k =2 এর মত হয়, তাহলে আউটপুটটি সত্য হবে, কারণ প্রতিটি 1s থেকে কমপক্ষে 2 স্থান দূরে রয়েছে একে অপরকে।

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • শেষ :=-1

  • আরম্ভ করার জন্য i :=0, যখন i <সংখ্যার আকার, আপডেট (i 1 দ্বারা বৃদ্ধি), −

    • যদি সংখ্যা[i] 1 এর মত হয়, তাহলে −

      • যদি শেষটি -1 বা (i - শেষ - 1)>=k হয়, তাহলে −

        • শেষ :=i

      • অন্যথায়

        • ফেরত মিথ্যা

  • প্রত্যাবর্তন সত্য

উদাহরণ

আরো ভালোভাবে বোঝার জন্য নিচের বাস্তবায়নটি দেখি -

#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;
   }
};
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. C++ এ তিনটি বিন্দু সমরেখার কিনা তা পরীক্ষা করার জন্য প্রোগ্রাম

  2. পাইথনে সমস্ত অ্যারের উপাদান আলাদা কিনা তা পরীক্ষা করুন

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

  4. পাইথন - একটি তালিকার সমস্ত উপাদান একই কিনা তা পরীক্ষা করুন