Python | Найти общие элементы в трех отсортированных массивах по пересечению словаря

Учитывая три массива, отсортированные в неубывающем порядке, выведите все общие элементы в этих массивах.

Примеры:

Ввод: ar1 = [1, 5, 10, 20, 40, 80]
        ar2 = [6, 7, 20, 80, 100]
        ar3 = [3, 4, 15, 20, 30, 70, 80, 120]
Выход: [80, 20]
Ввод: ar1 = [1, 5, 5]
        ar2 = [3, 4, 5, 5, 10]
        ar3 = [5, 5, 10, 20]
Выход: [5, 5]

Рекомендуется: Пожалуйста, сначала попробуйте подход {IDE} , прежде чем переходить к решению.

У нас есть решение этой проблемы, пожалуйста, обратитесь к ссылке Найти общие элементы в трех отсортированных массивах . Мы можем быстро решить эту проблему в python, используя пересечение словарей. Подход прост,

  1. Сначала преобразуйте все три списка в словари с элементами в качестве ключей и их частотами в качестве значения, используя метод Counter () .
  2. Теперь выполните операцию пересечения для трех словарей, в результате мы получим словарь, имеющий общие элементы среди трех списков массивов с их частотами.
filter_none

редактировать
близко

play_arrow

ссылка на сайт
brightness_4
код

# Function to find common elements in three
# sorted arrays
fromcollections importCounter
 
defcommonElement(ar1,ar2,ar3):
     # first convert lists into dictionary
     ar1 =Counter(ar1)
     ar2 =Counter(ar2)
     ar3 =Counter(ar3)
    
     # perform intersection operation
     resultDict =dict(ar1.items() & ar2.items() & ar3.items())
     common =[]
     
     # iterate through resultant dictionary
     # and collect common elements
     for(key,val) inresultDict.items():
          fori inrange(0,val):
               common.append(key)
 
     print(common)
 
# Driver program
if__name__ =="__main__":
    ar1 =[1, 5, 10, 20, 40, 80]
    ar2 =[6, 7, 20, 80, 100]
    ar3 =[3, 4, 15, 20, 30, 70, 80, 120]
    commonElement(ar1,ar2,ar3)

chevron_right

Выход:

[80, 20]

adsense2code6
Мои личные заметки arrow_drop_up

Рекомендуемые сообщения:


Опытный инженер-программист с богатой историей работы в сфере информационных технологий и услуг. Специалист в области технологий больших данных, структур данных, алгоритмов, разработки программного обеспечения, разработки приложений, баз данных, Python, Java, C и WordPress.

adsense2code6