কম্পিউটার

C++ এ গাণিতিক স্লাইস


ধরুন আমাদের সংখ্যার একটি ক্রম আছে তাকে পাটিগণিত বলা হয় যদি তাতে অন্তত তিনটি উপাদান থাকে এবং যদি দুটি পরপর উপাদানের মধ্যে পার্থক্য একই হয়। সুতরাং উদাহরণস্বরূপ, এগুলি হল গাণিতিক ক্রম:[1, 3, 5, 7, 9], [7, 7, 7, 7], [3, -1, -5, -9], কিন্তু নিম্নলিখিত ক্রমটি নয় পাটিগণিত [1, 1, 2, 5, 7]

এখন N সংখ্যার সমন্বয়ে একটি শূন্য-সূচীযুক্ত অ্যারে দেওয়া হয়েছে। প্রদত্ত অ্যারের একটি স্লাইস হল যেকোনো জোড়া পূর্ণসংখ্যার (P, Q) যেমন 0 <=P

সুতরাং ইনপুট যদি [1,2,3,4] এর মত হয়, তাহলে আউটপুট হবে 3, যেমন উপাদানগুলি [1,2,3], [2,3,4] এবং [1,2,3, 4]

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

  • ret :=0, n :=A এর আকার, n আকারের একটি অ্যারে ডিপি তৈরি করুন
  • আমি 2 থেকে n – 1
      পরিসরে
    • যদি a[i] – a[i – 1] =a[i – 1] – a[i – 2], তারপর
      • dp[i] :=1 + dp[i - 1]
      • dp[i] দ্বারা ret বাড়ান
  • রিটার্ন রিটার্ন

উদাহরণ (C++)

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

#include <bits/stdc++.h>
using namespace std;
class Solution {
   public:
      int numberOfArithmeticSlices(vector<int>& A) {
         int ret = 0;
         int n = A.size();
         vector <int> dp(n);
         for(int i = 2; i < n; i++){
            if(A[i] - A[i - 1] == A[i - 1] - A[i - 2]){
               dp[i] = 1 + dp[i - 1];
               ret += dp[i];
            }
         }
         return ret;
      }  
};
main(){
   vector<int> v = {1,2,3,4};
   Solution ob;
   cout << (ob.numberOfArithmeticSlices(v));
}

ইনপুট

[1,2,3,4]

আউটপুট

3

  1. C++ এ 3n স্লাইস সহ পিৎজা

  2. C++ এ পয়েন্টার গাণিতিক ব্যবহার করে অ্যারের সমষ্টি

  3. সি++ এ সরল পাটিগণিত অপারেটর উদাহরণ প্রোগ্রাম

  4. C++ এ পাটিগণিত অপারেটর