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

Pythonで単一の要素を変更することにより、両方の配列を等しくすることが可能かどうかを確認します


2つの配列nums1とnums2と、別の値kがあるとします。次の方法(1回のみ)でnums1の任意の1つの要素を変更して、両方の配列を等しくできるかどうかを確認する必要があります。範囲[-k、k]の任意の値をnums1の任意の要素に追加できます。

したがって、入力がnums1 =[5,7,11] nums2 =[5,5,11] k =8のようである場合、-2([-8,8]の範囲)を追加できるため、出力はTrueになります。 )nums1 [1]を使用して5にすると、nums2と同じになります。

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

  • リストnums1とnums2を並べ替えます
  • temp:=False
  • idx:=-1
  • 範囲0からnums1-1のサイズのiの場合、do
    • nums1[i]がnums2[i]と同じでない場合、
      • tempがtrueの場合、
        • Falseを返す
      • temp:=True
      • idx:=i
  • idxが-1または|nums1[idx] -nums2[idx]|の場合<=k、次に
    • Trueを返す
  • Falseを返す

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

サンプルコード

def solve(nums1, nums2, k):
   nums1.sort()
   nums2.sort()

   temp = False

   idx = -1
   for i in range(len(nums1)):
      if nums1[i] != nums2[i]:
         if temp:
           return False
         temp = True
         idx = i

   if idx == -1 or abs(nums1[idx]-nums2[idx]) <= k:
      return True
   return False

nums1 = [5,7,11]
nums2 = [5,5,11]
k = 8
print(solve(nums1, nums2, k))

入力

[5,7,11], [5,5,11], 8

出力

True

  1. Pythonのタプルのタプルに要素が存在するかどうかを確認します

    Pythonタプルはネストできます。要素がタプルでもあるタプルを持つことができます。この記事では、特定の値がタプルのタプルの要素として存在するかどうかを確認する方法を説明します。 任意 any関数を使用して、forループを使用して、タプルに存在するサブタプルのいずれかに特定の値が要素として存在するかどうかを確認できます。 ifおよびelse句をチェックインするための条件全体を設定します。 例 Atuple = [('Mon',10),('Tue',8),('Wed',8),('Thu',5)] #Given tuple pri

  2. 配列内のすべての桁を使用して3つの数値で割り切れる可能性があるかどうかを確認するPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 整数の配列入力が与えられた場合、3で割り切れるように、これらの数値で使用可能なすべての数字を使用して整数を作成できるかどうかを確認する必要があります。 ここでは、整数の配列と配列の長さという2つの引数を取る関数を生成します。 以下に示す実装は、精神数学の概念に基づいて機能します。ここでは、桁の合計が3で割り切れる場合、数値は3で割り切れることがわかります。 次に、以下の実装を見てみましょう- 例 def isPossibleToMakeDivisible(arr, n): &nbs