gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-01 23:02:19 26 4
gpt4 key购买 nike

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

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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com