Skip to content

Commit 6ef4792

Browse files
author
rpanjrath
committed
Arrays: FindArray - refactoring.
1 parent b0a0179 commit 6ef4792

1 file changed

Lines changed: 9 additions & 3 deletions

File tree

src/arrays/findarray/FindArrayImpl.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,18 @@ public int findArray(int[] array, int[] subArray) {
1515
}
1616
int subArrayFirstElement = subArray[0];
1717
int startIndex = -1;
18-
for (int i = 0; i < array.length; i++) {
18+
int i = 0;
19+
while (i < array.length) {
1920
if (array[i] == subArrayFirstElement) {
2021
if (subArray.length == 1) {
2122
startIndex = i;
2223
return startIndex;
2324
}
2425
int j = i + 1;
25-
int k = 1;
26+
int k = 1; // k is to keep track of sub-array index.
2627
while (j < array.length && k < subArray.length) {
2728
if (array[j] != subArray[k]) {
29+
i = j;
2830
break;
2931
}
3032
if (k == subArray.length - 1) {
@@ -34,6 +36,8 @@ public int findArray(int[] array, int[] subArray) {
3436
j++;
3537
k++;
3638
}
39+
} else {
40+
i++;
3741
}
3842
}
3943
return startIndex;
@@ -42,6 +46,8 @@ public int findArray(int[] array, int[] subArray) {
4246
public static void main(String[] args) {
4347
FindArray findArray = new FindArrayImpl();
4448

45-
System.out.println(findArray.findArray(new int[]{7, 8, 9, 11, 8 , 9 , 1,10}, new int[]{8, 9, 10}));
49+
System.out.println(findArray.findArray(new int[]{7, 8, 9, 11, 8, 9, 1, 10}, new int[]{8, 9, 10}));
50+
System.out.println(findArray.findArray(new int[]{7, 8, 9, 11, 8, 9, 10}, new int[]{8, 9, 10}));
51+
System.out.println(findArray.findArray(new int[]{7, 8, 9, 11, 8, 9, 8, 9, 10}, new int[]{8, 9, 10}));
4652
}
4753
}

0 commit comments

Comments
 (0)