Problem:
We'll say that a "mirror" section in an array is a group of contiguous elements such that somewhere in the array, the same group appears in reverse order. For example, the largest mirror section in {1, 2, 3, 8, 9, 3, 2, 1} is length 3 (the {1, 2, 3} part). Return the size of the largest mirror section found in the given array.
maxMirror({1, 2, 3, 8, 9, 3, 2, 1}) → 3
maxMirror({1, 2, 1, 4}) → 3
maxMirror({7, 1, 2, 9, 7, 2, 1}) → 2

Solution:
public int maxMirror(int[] nums) {
int len = nums.length;
int count= 0;
int max = 0;
for (int i = 0; i < len; i++){
count=0;
for (int j = len-1; i + count < len && j > -1; j--){
if(nums[i+count] == nums[j]){
count++;
}
else{
if (count > 0){
max = Math.max(count,max);
count = 0;
}
}
}
max = Math.max(count,max);
}
return max;
}
No comments:
Post a Comment