java - 查找两个数组中相同的元素

标签 java

我试图在两个数组中找到相同的元素,其中元素之间的最大距离必须等于 k。

我的两个数组(大小不同且未排序)A 和 B,k 最大距离。

这就是我所做的,但我不知道哪里有错误......

for (int i = 0; i<A.length; i++){
    for(int j = i; j < k || j < B.length; j++)
        if(A[i] == B[j]){
            //Print on console
            System.out.println(B[i]);
            j = k;
        }
    }
}

例如:

A[3,7,5,9,10,15,16,1,6,2] 
B[4,8,5,13,1,17,2,11] 
k=6

输出应该是 5 1 2 ,但我不知道为什么,我的程序只给我 5 。谁能帮我理解为什么?

最佳答案

for (int i = 0; i < A.length; i++) {
    int startIndex = Math.max(i - k + 1, 0);
    int endIndex = Math.min(i + k, B.length);
    for (int j = startIndex; j < endIndex; j++){
        if (A[i] == B[j]) {
            System.out.println(B[j]);
        }
    }
}

呃,哦,不确定你想要的距离到底是多少,包括当前元素还是排除它。此外,重复项(在同一范围内)可能是需要处理的特殊情况。

关于java - 查找两个数组中相同的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18312426/

相关文章:

java - 数据加载仅来自 onStart 而不是 Fragment 中的 OnActivityCreated

java - 批量制作 Azure IoT 中心设备标识时出错

java - 单向/双向 X 一/多 X 多/一关联关系

java - 在运行 Spring MVC 应用程序时在 Spring Boot 中获取 NoSuchMethodError : javax. servlet.ServletContext.addServlet

java - 解析 xml 并在每个节点通知调用方法的类之后

java - 什么是ActionMapping、RenderMapping?

Java从字符串中间读取整数

java - Android - RecyclerView 从中间而不是顶部开始

java - 结果集 getDate() 返回了错误的日期值

java - 在构造函数中实现监听器的(java/android)类是否应该具有与监听器操作以某种方式相关的静态方法?