leetcode349 python3 112ms 求两个数组的交集

class Solution:
    def intersection(self, nums1, nums2):
        """
        :type nums1: List[int]
        :type nums2: List[int]
        :rtype: List[int]
        """
        s = []
        for i in nums1:
            if i not in s and  i in nums2 :
                s.append(i)
        return s
        

原文地址:https://www.cnblogs.com/theodoric008/p/9456700.html

时间: 2024-11-05 12:17:44

leetcode349 python3 112ms 求两个数组的交集的相关文章

求两个数组的交集

问题: 给你两个排序的数组,求两个数组的交集. 比如: A = 1 3 4 5 7, B = 2 3 5 8 9, 那么交集就是 3 5. 思路: 1. 每一次从B数组中取一值,然后在A数组里逐个比较,如果有相等的,则保存.该算法复杂度为 O(MN). M, N 分别为数组 A B 的长度. 2. 因为A B 都排过序,所以,每一次从B数组取值后,可以利用二分查找看是否在数组A里有B所对应的值,这样复杂度变成了O(N lg M). 这里,如果N 比 M 大,可以从A中取值,然后在B中判断是否有A

leetcode-350-Intersection of Two Arrays II(求两个数组的交集)

题目描述: Given two arrays, write a function to compute their intersection. Example:Given nums1 = [1, 2, 2, 1], nums2 = [2, 2], return [2, 2]. Note: Each element in the result should appear as many times as it shows in both arrays. The result can be in a

(C#) 求两个数组的交集

基本上在面试的时候,会具体到两个int数组,或string数组.具体也就是讨论算法. 首先需要的是和面试的人确认题目的含义,并非直接答题. 然后,可以提出自己的想法,首先最快的是用linq { List<int> array0 = new List<int>() { 1, 2, 9, 3, 5, 2 }; List<int> array1 = new List<int>() { 3, 2, 7 }; List<int> arrayInterSec

java使用bitmap求两个数组的交集

先实现一个bitmap /** * @Description: * @author: zhoum * @Date: 2020-01-23 * @Time: 10:49 */ public class BitMap { private int[] sign = {0x00000001,0x00000002,0x00000004,0x00000008,0x00000010,0x00000020,0x00000040,0x00000080,0x00000100,0x00000200,0x0000040

350.求两个数组的交集 Intersection of Two Arrays II

Given two arrays, write a function to compute their intersection. Example:Given nums1 = [1, 2, 2, 1], nums2 = [2, 2], return [2, 2]. Note: Each element in the result should appear as many times as it shows in both arrays. The result can be in any ord

349.求两个数组的交集 Intersection of Two Arrays

Given two arrays, write a function to compute their intersection. Example:Given nums1 = [1, 2, 2, 1], nums2 = [2, 2], return [2]. Note: Each element in the result must be unique. The result can be in any order. Subscribe to see which companies asked

快速求两个数组交集算法

快速求出两个数组的交集的算法,如果用循环遍历的方法,其时间复杂度为O(N^N),在面试中一般不考虑这种方法. 这里提供一种快速算法,算法实现步骤如下: 1. 找到arr1的最大数max,创建一个max+1大小的数组result. 2. 以arr1中的值作为result的下标,该索引处的值+1. 3. 在result数组中遍历arr2中的值为下标处的值,如果该索引值不为0,则代表该值是两者的交集,保留. 程序实现如下: /** * 求两个数组的交集 * @param arr1 * @param a

三种方法求解两个数组的交集

package com.Test; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; //求两个数组的交集 public class FindIntersectionBetweenTwoArrays { //算法一:暴力搜索,时间复杂度O(n^2),空间复杂度O(1) public ArrayList

华为上机练习题--求两个数组的总和

题目: 求两个数组的和差:就是去掉两个数组中相同的元素 然后将两个数组中的元素存放在一个新的数组中,且数组A中元素要在B数组元素之前 如:输入: int[] a={1,2,4,7,6,9}; int[] b={2,4,3,10}; 输出: int[] c = {1, 7, 6, 9, 3, 10}; 分析: 剔除相同的元素要互相比较, 然后将不同的元素先后插入新的数组中, 所以我将重点放在比较上, 有可能效率有点低, 大家有什么好的想法可以分享下: 代码如下: package com.wenj.