java - 如何找到一个数组在另一个数组中的出现?并返回第一个数组的索引

标签 java arrays

这是我正在尝试完成但不知道如何前进的算法,

public int findArray(int[] array, int[] subArray) {
    for (int i = 0; i < array.length; i++) {
        for (int j = 0; i < subArray.length; j++) {
            if (array[i] == subarray[j]) {//not sure if this is how to start 

            }
        }//will want to compare all element in subarray to Array
    }
    return 0;
}

我想要的结果如下

//[4,9,3,7,8] and [3,7] should return 2.
//[7,8,9] and [8,9,10] should return -1

//[4,9,3,7,8,3,7,1] and [3,7]should return 5

我的理解是我将子数组作为一个整体,并尝试在数组中找到它匹配的位置,但不知道该怎么做

最佳答案

一种简单的方法:

// 1) Convert array to String, for eg. [1,2,3,4] => "1234". 
// 2) Use Strings substring/lastIndexOf to find the correct index. 

private static int findSubarrayPosition(int[] array, int[] subarray) {
      StringBuilder sb = new StringBuilder();
      for (int i = 0; i < array.length; i++) {
          sb.append(array[i]);
      }
      String string = sb.toString();

      sb = new StringBuilder();
      for (int i = 0; i < subarray.length; i++) {
          sb.append(subarray[i]);
      }
      String subString = sb.toString();

      return string.lastIndexOf(subString);
}

关于java - 如何找到一个数组在另一个数组中的出现?并返回第一个数组的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47391549/

相关文章:

c - 从字符数组中扫描整数

java - 调用输入到字符串中的数据

arrays - 在 Swift 中通过 segue 传递后访问数组值的问题

java - CXF异步调用异常延迟

java - 改造从android studio中的本地存储获取数据

php - 将数据库信息存储为数组

javascript - 使用 concat 将对象添加到数组的正确方法

javascript - 如何为我的交通灯序列 JavaScript 执行连续循环?

java - 无法找到或加载主类 : what steps are next for debugging?

java - jdom2 XPath 查询的结果不明确