কম্পিউটার

C++ প্রোগ্রামে K ডিজিটস সরান


ধরুন আমাদের কাছে সংখ্যার একটি ক্রম আছে তাকে পাটিগণিত বলা হয় যদি তাতে অন্তত তিনটি উপাদান থাকে এবং যদি দুটি পরপর উপাদানের মধ্যে পার্থক্য একই হয়। সুতরাং উদাহরণস্বরূপ, এগুলি হল গাণিতিক ক্রম:[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 আকারের একটি অ্যারে dp তৈরি করুন

  • 2 থেকে n – 1

    পরিসরে i জন্য
    • যদি 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(){
   Solution ob;
   cout << (ob.removeKdigits("1432219", 3));
}

ইনপুট

"1432219"
3

আউটপুট

1219

  1. C++ প্রোগ্রামে প্রাইম ফ্যাক্টর

  2. একটি স্ট্রিং থেকে স্পেস মুছে ফেলার জন্য C++ প্রোগ্রাম?

  3. একটি পূর্ণসংখ্যার সংখ্যা জুম করার জন্য C++ প্রোগ্রাম

  4. একটি প্রদত্ত সংখ্যার সংখ্যা যোগ করার জন্য C++ প্রোগ্রাম