问题:

package com.example.demo;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List; public class Test350 { /**
* 双指针,先对数据进行排序预处理,然后使用两个指针分别找到两个数组中相同的值,并放到list中
*/
public int[] intersect(int[] nums1, int[] nums2) {
if (nums1 == null || nums1.length == 0 || nums2 == null || nums2.length == 0) {
return new int[0];
}
List<Integer> list = new ArrayList<>();
Arrays.sort(nums1);
Arrays.sort(nums2);
int pointer1 = 0;
int pointer2 = 0;
while (pointer1 < nums1.length && pointer2 < nums2.length) {
if (nums1[pointer1] < nums2[pointer2]) {
pointer1++;
} else if (nums1[pointer1] > nums2[pointer2]) {
pointer2++;
} else {
list.add(nums1[pointer1]);
pointer1++;
pointer2++;
}
}
int[] res = new int[list.size()];
for (int i = 0; i < list.size(); i++) {
res[i] = list.get(i);
}
return res;
} public static void main(String[] args) {
Test350 t = new Test350();
int[] arr1 = {4, 9, 5};
int[] arr2 = {9, 4, 9, 8, 4};
int[] intersect = t.intersect(arr2, arr1);
for (int i : intersect) {
System.out.print(i + " ");
}
}
}

最新文章

  1. MetadataType来帮助entity framework自动生成的代码进行标注
  2. Understanding mysql max_connect_errors
  3. sentinel
  4. 农场阳光 (simpson)
  5. C# MessageBox 用法大全(转)
  6. 基于SSM框架的简易的分页功能——包含maven项目的搭建
  7. Application(全局对象,ViewState
  8. IIS的安装
  9. iOS8的新特性
  10. 核心基础以及Fragment与Activity传递数据完整示例
  11. eclipse 和 jdk的位数不同
  12. js复制链接
  13. CRM实施失败?请注意这6大问题及对策!
  14. Java Jvm运行机制原理
  15. 【Spark篇】---Spark解决数据倾斜问题
  16. 将 notepad++ 添加到鼠标右键菜单 带图标
  17. zookeeper windows7下集群搭建
  18. IAR ------ 基本使用
  19. C 数据类型——Day02
  20. Lambda演算(一)大道至简

热门文章

  1. CSS-01 CSS代码标准和规范
  2. 牛客小白月赛16 F 小石的妹子 (线段树)
  3. Move Over and Click Link
  4. BZOJ3331 BZOJ2013 压力
  5. logging error. UnicodeEncodeError: &#39;ascii&#39; codec can&#39;t encode characters in position 0-1: ordinal not in range(128)
  6. Ubuntu12.04安装配置vncserver
  7. nyoj 762:第k个互质数
  8. Linux系统重要文件(三)
  9. LOJ 2555 「CTSC2018」混合果汁——主席树
  10. 【ERP知识】一个VMI(供应商管理库存)实现方案