第二十二条 Intersection of Two Arrays II

开始第二个循环了
总归要找点好玩的事情,那么难度是在慢慢增加中,题目的数量也可以开始加加速
今天先尝试做两道题试试看
先从这道水题开始

https://leetcode-cn.com/problems/intersection-of-two-arrays-ii/description/

求两个数组的交集,这里还是先来个直接的“解法”吧

优先通过遍历其中还一个数组,用一个字典来保存每个字符出现的次数,然后再遍历第二个数组,然后依次看字典里是否有,如果有,就输出一个结果,然后对应的出现次数减一。

方法非常直接,然后有个可以稍微优化的思路,就是先遍历长度较短的那个,当然还有就是如果两个数组本来就相等的话,就干脆不用比较啦

class Solution:
    def intersect(self, nums1, nums2):
        """
        :type nums1: List[int]
        :type nums2: List[int]
        :rtype: List[int]
        """
        if nums1 == nums2:
            return nums1
        counter = {}
        ret = []
        for i in nums1:
            if i in counter:
                counter[i] += 1
            else:
                counter[i] = 1
        for i in nums2:
            if i in counter and counter[i] > 0:
                counter[i] -=1
                ret.append(i)
        return ret

当然还有可以用python的内置函数,或是排序等,优化的方法还是有一些的呢

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 算法思想贪心思想双指针排序快速选择堆排序桶排序荷兰国旗问题二分查找搜索BFSDFSBacktracking分治动态...
    第六象限阅读 10,227评论 0 0
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 14,358评论 0 33
  • LeetCode 刷题随手记 - 第一部分 前 256 题(非会员),仅算法题,的吐槽 https://leetc...
    蕾娜漢默阅读 18,249评论 2 36
  • 本文内容为练习LeetCode题目时的解题思路和不同算法的记录,实现语言为C++,代码保存在Github,均已在L...
    SK木眠阅读 4,652评论 0 0
  • 时光总爱逃,红了樱桃,绿了芭蕉,抛了旧人。 我总觉得这座城市这么小,我跟他工作的地点离得这么近,总有一天,我会牵着...
    李大仙儿的精神世界阅读 1,499评论 0 1

友情链接更多精彩内容