配列にPythonの残りの要素の積に等しい要素があるかどうかを確認します
numsという配列があるとすると、その配列に他のすべての要素の積と同じ値の要素が含まれているかどうかを確認する必要があります。
したがって、入力がnums =[3,2,24,4,1]のような場合、出力はTrue、24 =(3 * 2 * 4 * 1)になります。
これを解決するには、次の手順に従います-
- mul:=1
- 範囲0からnums-1のサイズのiの場合、do
- mul:=mul * nums [i]
- 範囲0からnums-1のサイズのiの場合、do
- nums [i]が(mul / nums [i])と同じ場合、
- Trueを返す
- nums [i]が(mul / nums [i])と同じ場合、
- Falseを返す
理解を深めるために、次の実装を見てみましょう-
サンプルコード
def solve(nums): mul = 1 for i in range(len(nums)): mul *= nums[i] for i in range(len(nums)): if nums[i] == mul / nums[i]: return True return False nums = [3,2,24,4,1] print(solve(nums))
入力
[3,2,24,4,1]
出力
True
-
Pythonで等しい積を持つ2つのサブ配列に配列を分割する要素を見つけます
サイズNの配列があるとします。配列を等しい積の2つの異なるサブ配列に分割する要素を見つける必要があります。そのようなパーティションが不可能な場合は-1を返します。 したがって、入力が[2,5,3,2,5]の場合、出力は3になり、サブ配列は{2、5}と{2、5}になります。 これを解決するには、次の手順に従います- n:=配列のサイズ multiply_pref:=新しいリスト multiply_prefの最後にarray[0]を挿入します 1からnの範囲のiについては、 multiply_prefの最後にmultiply_pref[i-1]*array[i]を挿入します mu
-
PythonのSelfを除く配列の製品
1であるn個の整数のnumsという配列があるとします。output[i]がnums[i]を除くnumsのすべての要素の積に等しくなるような配列出力を見つける必要があります。したがって、入力配列が[1,2,3,4]の場合、出力は[24,12,8,6]になります。除算演算子を使用せずにこれを解決する必要があります。 これを解決するには、次の手順に従います- right_mul:=numsと同じサイズの配列、0で埋める right_mulの最後の要素=numsの最後の要素 1からnumsの長さのiの場合 right_mul [numsの長さ– i – 1] =right_mul [numsの