C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++プログラムでK桁を削除する


数のシーケンスが、少なくとも3つの要素で構成されていて、2つの連続する要素の差が同じである場合、算術と呼ばれるとします。したがって、たとえば、これらは等差数列です:[1、3、5、7、9]、[7、7、7、7]、[3、-1、-5、-9]、しかし次のシーケンスはそうではありません算術。 [1、1、2、5、7]

ここで、N個の数値で構成されるゼロインデックス配列Aが与えられます。その与えられた配列のスライスは、0 <=P

したがって、入力が[1,2,3,4]の場合、要素は[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]

      • retを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++プログラム

    このプログラムでは、C++で整数の数字をズームする方法を説明します。ズームとは、他の文字を使用して数字をより大きな形式で印刷することを意味します。ロジックは単純ですが、0から9まで1つずつ大きな数字を作成する必要があります。 サンプルコード #include <bits/stdc++.h> using namespace std; void print_zero() {    for (int i=0; i<5; i++) {       for (int j=0; j<5; j++) {     &

  2. 指定された数値の桁を合計するC++プログラム

    これは、C++言語で桁の合計を計算する例です。 例 #include<iostream> using namespace std; int main() {    int x, s = 0;    cout << "Enter the number : ";    cin >> x;    while (x != 0) {       s = s + x % 10;       x = x / 10;