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

すべての1がC++で少なくとも長さKの場所にあるかどうかを確認します


配列番号が0と1で、整数がkであるとすると、すべての1が互いに少なくともk桁離れているかどうかを確認する必要があります。そうでない場合は、Falseを返します。

したがって、入力がnums =[1,0,0,0,1,0,0,1]、k =2のようである場合、各1は少なくとも2桁離れているため、出力はtrueになります。お互い。

これを解決するには、次の手順に従います-

  • 最後:=-1

  • 初期化i:=0の場合、i

    • nums [i]が1と同じ場合、-

      • lastが-1または(i --last --1)> =kと同じ場合、-

        • 最後:=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;
   }
};
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++で3つのポイントが同一線上にあるかどうかをチェックするプログラム

    3つの異なる値のポイントが与えられ、タスクはポイントが同一線上にあるかどうかを確認することです。 ポイントが同じ線上にある場合は同一線上にあると言われ、異なる線上にある場合は同一線上にありません。以下に、同一線上および非同一線上の点の図を示します。 入力 x1 = 1, x2 = 2, x3 = 3, y1 = 1, y2 = 4, y3 = 5 出力 no points are not collinear 入力 x1 = 1, y1 = 1, x2 = 1, y2 = 4, x3 = 1, y3 = 5 出力 points are collinear 以下のプログラム

  2. Python-リスト内のすべての要素が同じかどうかを確認します

    リスト要素としてリスト内で1つの単一の値が繰り返されているかどうかを確認する必要がある場合があります。以下のPythonプログラムを使用して、このようなシナリオを確認できます。さまざまなアプローチがあります。 forループの使用 このメソッドでは、リストから最初の要素を取得し、従来のforループを使用して、各要素を最初の要素と比較し続けます。値がどの要素とも一致しない場合、ループから抜け出し、結果はfalseになります。 例 List = ['Mon','Mon','Mon','Mon'] result = True # Get