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

Pythonでの2つの配列IIの交差


2つの配列AとBがあるとすると、これらの配列にはいくつかの要素があります。それらの交差点を見つける必要があります。したがって、A =[1、4、5、3、6]、およびB =[2、3、5、7、9]の場合、交点は[3、5]

になります。

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

  • 2つのアレイAとBを取ります
  • Aの長さがBの長さよりも短い場合は、それらを交換します
  • 配列内の要素の頻度を計算し、それらをmに格納します
  • Bの各要素eについて、eがmに存在し、頻度がゼロ以外の場合、
    • 頻度m[e]を1つ減らします
    • 結果の配列にeを挿入します
  • 結果の配列を返す

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

class Solution(object):
   def intersect(self, nums1, nums2):
      """
      :type nums1: List[int]
      :type nums2: List[int]
      :rtype: List[int]
      """
      m = {}
      if len(nums1)<len(nums2):
         nums1,nums2 = nums2,nums1
      for i in nums1:
         if i not in m:
            m[i] = 1
         else:
            m[i]+=1
      result = []
      for i in nums2:
         if i in m and m[i]:
            m[i]-=1
            result.append(i)
      return result
ob1 = Solution()
print(ob1.intersect([1,4,5,3,6], [2,3,5,7,9]))

入力

[1,4,5,3,6]
[2,3,5,7,9]

出力

[3,5]

  1. Intersection()関数Python

    この記事では、任意のセットで実行できるintersection()関数について学習します。数学によると、共通部分とは、2つのセットから共通の要素を見つけることを意味します。 構文 <set name>.intersection(<set a1> <set a2> ……..) 戻り値 引数として渡されるセット内の共通要素。 例 set_1 = {'t','u','t','o','r','i','a','l&

  2. 2つのリストの共通部分を見つけるPythonプログラム?

    交差演算とは、リスト1とリスト2からすべての共通要素を取得する必要があり、すべての要素が別の3番目のリストに格納されることを意味します。 List1::[1,2,3] List2::[2,3,6] List3::[2,3] アルゴリズム Step 1: input lists. Step 2: first traverse all the elements in the first list and check with the elements in the second list. Step 3: if the elements are matched then store in t