【找出两个整数数组中同时出现的整数】Python实现

from collections import Counter

def find_common_elements(arr1, arr2):
    # 统计数组中每个数字的出现次数
    counter1 = Counter(arr1)
    counter2 = Counter(arr2)
    
    # 找出两个数组中同时出现的整数
    common_elements = set(arr1) & set(arr2)
    
    # 如果没有同时出现的整数,返回NULL
    if not common_elements:
        return "NULL"
    
    # 统计每个共同元素在两个数组中的最小出现次数
    count_dict = {}
    for num in common_elements:
        count_dict[num] = min(counter1[num], counter2[num])
    
    # 根据出现次数进行分类
    grouped = {}
    for num, count in count_dict.items():
        if count not in grouped:
            grouped[count] = []
        grouped[count].append(num)
    
    # 输出结果
    result = []
    for count in sorted(grouped.keys()):
        result.append(f"出现次数:{count}:" + ",".join(map(str, sorted(grouped[count]))))
    
    return "\n".join(result)

# 输入处理
arr1 = list(map(int, input().split(',')))
arr2 = list(map(int, input().split(',')))

# 调用函数并输出结果
print(find_common_elements(arr1, arr2))


相关文章

Python算法:4.寻找两个正序数组的中位数

题目:寻找两个正序数组的中位数给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。 算法的时间复杂度应该为 O(log(m+n...

在Python中怎么用二分法插入一个新的数到数组列表

接昨天的把一个数插入到有序的数组、列表中,我们今天使用二分法来,就好比一个队分成2个队,因为有序的么,先比较中间的,得到结果,只要比较一个方向的一半就可以了,这样一来是不是减少一半的时间,节约是运行时...

Python实现【分割数组的最大差值】

n = int(input()) nums = list(map(int, input().split())) total_sum = sum(nums) max_diff = 0 left_sum...

Python实现【找出两个整数数组中同时出现的整数】

from collections import defaultdict import sys def solve(): # 读取输入 arr1 = list(map(int, sys...

Python实现分治算法?

分治算法(Divide and Conquer Algorithm)是一种设计算法的策略,它将一个问题分成多个相似的子问题,递归地解决这些子问题,然后将结果合并以得到原问题的解。典型的分治算法包括归并...