349.两个数组的交集
做法基本两种
- 一是用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.两个数组的交集相关推荐
- 349. 两个数组的交集 golang
349. 两个数组的交集 给定两个数组,编写一个函数来计算它们的交集. 示例 1: 输入: nums1 = [1,2,2,1], nums2 = [2,2] 输出: [2] 示例 2: 输入: num ...
- 两个对象数组交集_yiduobo的每日leetcode 349.两个数组的交集 amp;amp; 350.两个数组的交集II...
祖传的手艺不想丢了,所以按顺序写一个leetcode的题解.计划每日两题,争取不卡题吧 349.两个数组的交集https://leetcode-cn.com/problems/intersection ...
- Day 06 | 242.有效的字母异位词 349. 两个数组的交集 202.快乐数 1. 两数之和
这四道题之前都做过!比第一次顺利一些,不过还是得看题解,磕磕绊绊的.不过我相信坚持下去一定会越来越好滴! 242.有效的字母异位词 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的 ...
- LeetCode -349 两个数组的交集
难度:简单 给定两个数组 nums1 和 nums2 ,返回它们的交集 .输出结果中的每个元素一定是唯一 的.我们可以不考虑输出结果的顺序 . 题目链接 LeetCode -349 两个数组的交集 S ...
- 349两个数组的交集(遗留问题)
349两个数组的交集 题目要求: 给定两个数组 nums1 和 nums2 ,返回 它们的交集 .输出结果中的每个元素一定是 唯一 的.我们可以 不考虑输出结果的顺序 . 示例 1: 输入:nums1 ...
- LeetCode 349 两个数组的交集
349. 两个数组的交集 难度简单476收藏分享切换为英文接收动态反馈 给定两个数组,编写一个函数来计算它们的交集. 示例 1: 输入:nums1 = [1,2,2,1], nums2 = [2,2] ...
- Leetcode刷题100天—349. 两个数组的交集(集合)—day08
前言: 作者:神的孩子在歌唱 大家好,我叫运智 349. 两个数组的交集 难度简单410收藏分享切换为英文接收动态反馈 给定两个数组,编写一个函数来计算它们的交集. 示例 1: 输入:nums1 = ...
- LeetCode 349. 两个数组的交集【哈希表】
349. 两个数组的交集 给定两个数组 nums1 和 nums2 ,返回 它们的交集 .输出结果中的每个元素一定是 唯一 的.我们可以 不考虑输出结果的顺序 . 示例 1: 输入:nums1 = [ ...
- 算法训练Day6 | LeetCode:242. 有效的字母异位词(数组作哈希表);349. 两个数组的交集(Set作哈希表);202.快乐数 (Set作哈希表);1. 两数之和(Map作哈希表)
目录 LeetCode242. 有效的字母异位词 方法:数组作哈希表 1. 思路 2. 代码实现 3. 复杂度分析 4. 思考 Leetcode349. 两个数组的交集 方法一:用Set作HashMa ...
- 代码随想录算法训练营第六天|242. 有效的字母异位词,349. 两个数组的交集,202.快乐数,1. 两数之和
242. 有效的字母异位词 力扣题目链接 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词. 示例 1: 输入: s = "anagram", t = ...
最新文章
- 1054 The Dominant Color
- xshell使用xftp传输文件 使用pure-ftpd搭建ftp服务
- 网络安全公司奇安信集团是如何基于 Flink 构建 CEP 引擎实时检测网络攻击【未来不可忽视的网络安全】
- C#开发微信公众平台-就这么简单(附Demo)
- android 开源 高斯模糊_Android实现带毛玻璃效果(高斯模糊)背景的Dialog
- centos环境访问php显示源码,CentOS 6.8 搭建LNAMP环境(五)- PHP7源码安装Redis和Redis拓展...
- RPC调用链通信方法
- 用jQuery的ajax的功能实现输入自动提示的功能
- 【转】重装Ubuntu时如何保留/home分区中的数据
- linux如何查询文件及文件夹大小
- 网吧防火墙选购(转)
- 关于《2012年我的十大工程》双季进展情况报告总结
- QS排名前70-100的英国大学怎么选?
- android 模拟下雪的效果
- 《创造成功本能》 博客思听 2011年2月
- 怎样在html中设置首字母大写,javascript如何设置字符串首字母大写?
- ubuntu20.04双系统启动盘制作、安装和卸载
- PHP微信公众号网页授权登录 扫码登录 获取用户基本信息
- Computer Vision—计算机视觉 (一)
- 超详细Seaborn绘图 ——(一)barplot
热门文章
- zabbix--监控MySQL主从状态
- Cassandra读写性能测试
- (一)检测浏览器是否支持websocket
- 黄聪:TortoiseGit(乌龟git)保存用户名密码的方法
- LC124 Binary Tree Maximum Path Sum
- 奕新集团--RAC环境后续
- redhat7企业版linuxlinux基本操作
- 由于目标机器积极拒绝,无法联接。microsoft sql server,错误:10061
- iOS 4.2 SDK安装
- [导入]ASP.NET AJAX 说明文档-客户端引用-全局命名空间-JavaScript 基础类型扩展-Array 类型扩展-add 函数...