给定两个数组,编写一个函数来计算它们的交集。

例1: 输入: nums1 = [1,2,2,1],nums2 = [2,2]  输出:[2,2]

例2: 输入: nums1 = [4,9,5],,nums2 = [9,4,9,8,4]  输出:[4,9]

注意: 结果中的每个元素应该出现在两个数组中显示的次数。 结果可以是任何顺序。 跟进: 如果给定的数组已经排序怎么办?你会如何优化算法? 如果nums1的尺寸与nums2的尺寸相比较小怎么办?哪种算法更好? 如果nums2的元素存储在磁盘上,并且内存有限,以致您无法一次将所有元素加载到内存中,该怎么办?

使用Arrays.sort()直接对数组进行排序。然后设置两个排序完成的数组的光标从零开始移动。当nums1中的值跟nums2中的值相等时,将数值加到ArrayList对象中,
两个数组光标同时向后移动。若第一个数组的值<第二个数组的值,第一个数组光标向后移动,若第一个数组的值>第二个数组的值,第二个数组光标向后移动。
public int[] intersect(int[] nums1, int[] nums2) {
int m=nums1.length,i=0;
int n=nums2.length,j=0;
Arrays.sort(nums1);
Arrays.sort(nums2);
List list=new ArrayList();
while(i<m&&j<n)
{
if (nums1[i]==nums2[j])
{
list.add(nums1[i]);
i++;j++;
}else if (nums1[i]<nums2[j])
{
i++;
}else {
j++;
}
}
int k=0;
int B[]=new int[list.size()];
Iterator iterator=list.iterator();
while (iterator.hasNext())
{
int a= (int) iterator.next();
B[k]=a;
k++;
}
return B;
}

350-两个阵列的交叉点II的更多相关文章

  1. 【Leetcode】【简单】【350. 两个数组的交集 II】【JavaScript】

    题目描述 350. 两个数组的交集 II 给定两个数组,编写一个函数来计算它们的交集. 示例 1: 输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2,2] 示例 2 ...

  2. 前端与算法 leetcode 350. 两个数组的交集 II

    目录 # 前端与算法 leetcode 350. 两个数组的交集 II 题目描述 概要 提示 解析 解法一:哈希表 解法二:双指针 解法三:暴力法 算法 # 前端与算法 leetcode 350. 两 ...

  3. Java实现 LeetCode 350 两个数组的交集 II(二)

    350. 两个数组的交集 II 给定两个数组,编写一个函数来计算它们的交集. 示例 1: 输入: nums1 = [1,2,2,1], nums2 = [2,2] 输出: [2,2] 示例 2: 输入 ...

  4. LeetCode初级算法之数组:350 两个数组的交集 II

    两个数组的交集 II 题目地址:https://leetcode-cn.com/problems/intersection-of-two-arrays-ii/ 给定两个数组,编写一个函数来计算它们的交 ...

  5. [LeetCode] 350. 两个数组的交集 II intersection-of-two-arrays-ii(排序)

    思路: 先找到set的交集,然后分别计算交集中的每个元素在两个原始数组中出现的最小次数. class Solution(object): def intersect(self, nums1, nums ...

  6. 350. 两个数组的交集 II

    给定两个数组,编写一个函数来计算它们的交集. 示例 1: 输入: nums1 = [1,2,2,1], nums2 = [2,2] 输出: [2,2] 示例 2: 输入: nums1 = [4,9,5 ...

  7. LeetCode 350: 两个数组的交集 II Intersection of Two Arrays II

    题目: 给定两个数组,编写一个函数来计算它们的交集. Given two arrays, write a function to compute their intersection. 示例 1: 输 ...

  8. 力扣350. 两个数组的交集 II

    原题 1 class Solution: 2 def intersect(self, nums1: List[int], nums2: List[int]) -> List[int]: 3 di ...

  9. 6、两个数组的交集 II

    6.两个数组的交集 II 给定两个数组,编写一个函数来计算它们的交集. 示例 1: 输入: nums1 = [1,2,2,1], nums2 = [2,2] 输出: [2,2] 示例 2: 输入: n ...

随机推荐

  1. MYsql 之多表查询.

    http://www.cnblogs.com/wangfengming/articles/8067220.html

  2. Android的基础知识点

    一.Intent的2种启动方式 1.显示启动: setClass(“包名”,“启动的Activity.class”); XML文件中启动Activity 2.隐示启动: setAction(" ...

  3. 实现一个算法,寻找字符串中出现次数最少的、并且首次出现位置最前的字符 如"cbaacfdeaebb",符合要求的是"f",因为他只出现了一次(次数最少)。并且比其他只出现一次的字符(如"d")首次出现的位置最靠前。

    实现一个算法,寻找字符串中出现次数最少的.并且首次出现位置最前的字符如"cbaacfdeaebb",符合要求的是"f",因为他只出现了一次(次数最少).并且比其 ...

  4. [JavaScript] 获取昨日前天的日期

    var day = new Date(); day.setDate(day.getDate()-1); console(day.pattern('yyyy-MM-dd'));//昨天的日期 day.s ...

  5. HTML+Javascript制作拼图小游戏详解(二)

    上一篇我们说了网页的基本布局.接下来将为大家带来具体的实现方法. 拼图通表格来实现,做一个方形的表格,改变其大小使之如图所示. 试想一下如果我们将一张图片剪成6张分别放入对应位置,然后再把它打乱,这样 ...

  6. git aliases

    单独的 alias git config --global alias.co checkout git config --global alias.br branch git config --glo ...

  7. Oracle 锁问题处理

    Oracle 锁问题处理 锁等待问题是一个常见的问题 查看持有锁的对象 查看事务正在执行的语句,与应用确认是否能够kill kill 对应的session

  8. 监督学习——决策树理论与实践(上):分类决策树

    1. 介绍         决策树是一种依托决策而建立起来的一种树.在机器学习中,决策树是一种预测模型,代表的是一种对象属性与对象值之间的一种映射关系,每一个节点代表某个对象/分类,树中的每一个分叉路 ...

  9. 【Java并发编程】:使用wait/notify/notifyAll实现线程间通信

    在java中,可以通过配合调用Object对象的wait()方法和notify()方法或notifyAll()方法来实现线程间的通信.在线程中调用wait()方法,将阻塞等待其他线程的通知(其他线程调 ...

  10. Oracle 数据库实例

    Oracle- 数据库的实例,表空间,用户,表之间的关系 一.完整的Oracle数据库通常由两部分组成:Oracle数据库和数据库实例 1.数据库是一些列物理文件的集合(数据文件,控制文件,联机文件, ...