我是Java新手。我有一个问题,我有两个数组parentArray和subArray:
parentArray 有价值 {1,4,4,3,6}subArray 有价值 {4,4,3}因此,第二个数组或所谓的subArray值包含在所谓的第一个数组中parentArray,其索引从开始[1,2,3]。我的问题是,我们如何返回第一个元素的索引值,该元素subArray也是的一部分parentArray。
即
int[] parentArray = new int[]{1,4,4,3,6};
int[] subArray = new int[]{4,4,3};
Run Code Online (Sandbox Code Playgroud)
由于subArray的值在parentArray的起始索引中[1],因此我希望程序返回1。
我尝试比较两个数组并从两个数组返回公共元素。但是在此之前,我是一个初学者,因此我无法考虑任何逻辑。
我已经为此创建了一个方法。试试下面的代码,
public int checkSubArray(int[] parentArray, int[] subArray) {
int result = -1;
for (int i = 0; i < parentArray.length; i++) {
int[] temp = Arrays.copyOfRange(parentArray, i, (subArray.length + i)); //This will create a temporary sub array
if (Arrays.equals(temp, subArray)) {
System.out.println(i);
result = i;
}
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
改善答案
public int checkSubArray(int[] parentArray, int[] subArray) {
int result = -1;
for (int i = 0; i < parentArray.length; i++) {
if (parentArray[i] == subArray[0]) { // Checking if the first value matches
int[] temp = Arrays.copyOfRange(parentArray, i, (subArray.length + i)); // This will create a temporary sub array
if (Arrays.equals(temp, subArray)) {
System.out.println(i);
result = i;
}
}
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
105 次 |
| 最近记录: |