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

Pythonで指定された回数実行された指定された操作で、指定された配列をゼロに減らすことができるかどうかを確認します


配列numsと値kがあるとすると、次の操作を正確にk回実行して、numsの要素を0にできるかどうかを確認する必要があります。

  • 操作:numsの最小要素が、numsのゼロ以外のすべての値から減算されます。

したがって、入力がnums [2、2、3、5] k =3のような場合、最初に配列から2を削除するため、出力はTrueになり、配列は[0、0、1、3]になります。次に、1を削除して[0、0、0、2]を取得し、次に2を削除して[0、0、0、0]を取得します。

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

  • k個の異なる要素がある場合、
  • Trueを返す
  • Falseを返す

理解を深めるために、次の実装を見てみましょう-

サンプルコード

def solve(nums, k):
   distinct = set(nums)
 
   if len(distinct) == k:
      return True
   return False
   
nums = [2, 2, 3, 4]
k = 3
print(solve(nums, k))

入力

[2, 2, 3, 4], 3

出力

True

  1. Pythonでの3回の操作で配列の合計をKにできるかどうかを確認します

    numsと呼ばれる数値のリストがあり、正の値Kもあるとします。これらの3つの演算のいずれかをnums-に対して実行できます。 1つの数値を負にする 番号自体に番号のインデックス(インデックス1から開始)を追加します 番号自体から番号のインデックスを引きます。 最後に、各要素に対してこれらの操作を1回だけ実行することにより、配列の合計がkになるときに、指定された配列を変換できるかどうかを確認する必要があります。 したがって、入力がnums =[1,2,3,7] k =8の場合、出力はTrueになります。これは、2と3から2と3のインデックスを減算して、[1、0、 0、7]なので、合計は8

  2. 指定された配列が単調であるかどうかを確認するPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 n個の整数を含む配列入力Arrが与えられます。入力配列が本質的に単調であるかどうかを確認する必要があります。 アレイが継続的に増加または継続的に減少している場合、そのアレイは本質的に単調であると言われます。 数学的に すべてのi<=j、の場合、配列Aは継続的に増加します。 A[i] <= A[j]. すべてのi<=j、の場合、配列Aは継続的に減少しています。 A[i] >= A[j]. ここでは、隣接するすべての要素が上記の条件のいずれかを満たしているかどうかを確