//
// Created by Mr.Hu on 2018/5/29.
//
// leetcode 350 intersection of two arrays 2
//
// 题目要求求两个数组中相同的元素,不是349中的集合。
//
// 刚开始想的很复杂,想着要将两个vector中出现的数字以及其个数用map<int,int>
// 存储起来,然后分别比较map中相同key值所对应的value值,再循环输出到vector结果中。
// 觉得太麻烦,于是想到另外一种方法:要想求所有共同存在的元素,只需要比较nums1和nums2,
// 判断元素是否相同。但是如果每个数分别比较,一方面复杂度高,另一方面会出现重复比较的情况。
// 所以为了解决这个问题,想到可以先对两个vector进行排序,排序之后依次进行比较,
// 两个vector分别维护自己的索引值index1和index2,从0开始,如果两个数相等,则将该数字加入到result中,同时index1和index2都加1
// 如果vector
// 如果vector
// 一旦任何一个vector迭代完,循环结束,return result。
//
1 |
|
python代码实现:
1 | class Solution: |
这个代码的思想是沿用c++中代码,在实现的过程中踩了一个雷,就是python中的while判断,对两个条件做联合判断时,不能用&&,而是用and。而且python中的sort方法,是listname.sort()或者sorted(listname)。