做法基本两种

  • 一是用java的set来做
  • 二是用排序+二分/双指针来做

实现2

排好序了,可以比较下两个数组的最大值,最小值,看看是否有解,在大量数据的时候可以剪枝。

   int max1,max2,min1,min2;if(nums1.length==0||nums2.length==0) return new int[0];max1=nums1[nums1.length-1];//看到长度-1,考虑是否越界min1=nums1[0];max2=nums2[nums2.length-1];min2=nums2[0];if(max1<min2||min1>max2) return new int[0];

双指针

class Solution {public int[] intersection(int[] nums1, int[] nums2) {Arrays.sort(nums2);Arrays.sort(nums1);int[] ans=new int[nums2.length];int cot=0;int j=0;int i=0;while(i!=nums1.length){if(j==nums2.length) break;if(nums1[i]==nums2[j]){j++;if(cot>=1&&nums1[i]==ans[cot-1]){i++;continue;}ans[cot++]=nums1[i];}else if(nums1[i]>nums2[j]) j++;else if(nums1[i]<nums2[j]) i++;}return Arrays.copyOf(ans,cot);}
}

二分

两个数组已经排序了,可以用二分了。
无非是遍历一个数组,在另一个数组中二分。


实现1

class Solution {public int[] intersection(int[] nums1, int[] nums2) {Set<Integer> s1=new HashSet<>();Set<Integer> s2=new HashSet<>();for(Integer am:nums1) {s1.add(am);}for(Integer am:nums2) s2.add(am);int size=Math.max(s1.size(),s2.size());int[] ans=new int[size];int index=0;for(Integer am:s1){if(s2.contains(am)){ans[index++]=am;}}return Arrays.copyOf(ans,index);}
}

349.两个数组的交集相关推荐

  1. 349. 两个数组的交集 golang

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

  2. 两个对象数组交集_yiduobo的每日leetcode 349.两个数组的交集 amp;amp; 350.两个数组的交集II...

    祖传的手艺不想丢了,所以按顺序写一个leetcode的题解.计划每日两题,争取不卡题吧 349.两个数组的交集https://leetcode-cn.com/problems/intersection ...

  3. Day 06 | 242.有效的字母异位词 349. 两个数组的交集 202.快乐数 1. 两数之和

    这四道题之前都做过!比第一次顺利一些,不过还是得看题解,磕磕绊绊的.不过我相信坚持下去一定会越来越好滴! 242.有效的字母异位词 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的 ...

  4. LeetCode -349 两个数组的交集

    难度:简单 给定两个数组 nums1 和 nums2 ,返回它们的交集 .输出结果中的每个元素一定是唯一 的.我们可以不考虑输出结果的顺序 . 题目链接 LeetCode -349 两个数组的交集 S ...

  5. 349两个数组的交集(遗留问题)

    349两个数组的交集 题目要求: 给定两个数组 nums1 和 nums2 ,返回 它们的交集 .输出结果中的每个元素一定是 唯一 的.我们可以 不考虑输出结果的顺序 . 示例 1: 输入:nums1 ...

  6. LeetCode 349 两个数组的交集

    349. 两个数组的交集 难度简单476收藏分享切换为英文接收动态反馈 给定两个数组,编写一个函数来计算它们的交集. 示例 1: 输入:nums1 = [1,2,2,1], nums2 = [2,2] ...

  7. Leetcode刷题100天—349. 两个数组的交集(集合)—day08

    前言: 作者:神的孩子在歌唱 大家好,我叫运智 349. 两个数组的交集 难度简单410收藏分享切换为英文接收动态反馈 给定两个数组,编写一个函数来计算它们的交集. 示例 1: 输入:nums1 = ...

  8. LeetCode 349. 两个数组的交集【哈希表】

    349. 两个数组的交集 给定两个数组 nums1 和 nums2 ,返回 它们的交集 .输出结果中的每个元素一定是 唯一 的.我们可以 不考虑输出结果的顺序 . 示例 1: 输入:nums1 = [ ...

  9. 算法训练Day6 | LeetCode:242. 有效的字母异位词(数组作哈希表);349. 两个数组的交集(Set作哈希表);202.快乐数 (Set作哈希表);1. 两数之和(Map作哈希表)

    目录 LeetCode242. 有效的字母异位词 方法:数组作哈希表 1. 思路 2. 代码实现 3. 复杂度分析 4. 思考 Leetcode349. 两个数组的交集 方法一:用Set作HashMa ...

  10. 代码随想录算法训练营第六天|242. 有效的字母异位词,349. 两个数组的交集,202.快乐数,1. 两数之和

    242. 有效的字母异位词 力扣题目链接 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词. 示例 1: 输入: s = "anagram", t = ...

最新文章

  1. 1054 The Dominant Color
  2. xshell使用xftp传输文件 使用pure-ftpd搭建ftp服务
  3. 网络安全公司奇安信集团是如何基于 Flink 构建 CEP 引擎实时检测网络攻击【未来不可忽视的网络安全】
  4. C#开发微信公众平台-就这么简单(附Demo)
  5. android 开源 高斯模糊_Android实现带毛玻璃效果(高斯模糊)背景的Dialog
  6. centos环境访问php显示源码,CentOS 6.8 搭建LNAMP环境(五)- PHP7源码安装Redis和Redis拓展...
  7. RPC调用链通信方法
  8. 用jQuery的ajax的功能实现输入自动提示的功能
  9. 【转】重装Ubuntu时如何保留/home分区中的数据
  10. linux如何查询文件及文件夹大小
  11. 网吧防火墙选购(转)
  12. 关于《2012年我的十大工程》双季进展情况报告总结
  13. QS排名前70-100的英国大学怎么选?
  14. android 模拟下雪的效果
  15. 《创造成功本能》 博客思听 2011年2月
  16. 怎样在html中设置首字母大写,javascript如何设置字符串首字母大写?
  17. ubuntu20.04双系统启动盘制作、安装和卸载
  18. PHP微信公众号网页授权登录 扫码登录 获取用户基本信息
  19. Computer Vision—计算机视觉 (一)
  20. 超详细Seaborn绘图 ——(一)barplot

热门文章

  1. zabbix--监控MySQL主从状态
  2. Cassandra读写性能测试
  3. (一)检测浏览器是否支持websocket
  4. 黄聪:TortoiseGit(乌龟git)保存用户名密码的方法
  5. LC124 Binary Tree Maximum Path Sum
  6. 奕新集团--RAC环境后续
  7. redhat7企业版linuxlinux基本操作
  8. 由于目标机器积极拒绝,无法联接。microsoft sql server,错误:10061
  9. iOS 4.2 SDK安装
  10. [导入]ASP.NET AJAX 说明文档-客户端引用-全局命名空间-JavaScript 基础类型扩展-Array 类型扩展-add 函数...