Solved

# maxMirror challenge

Posted on 2016-08-14
200 Views
Hi,

I am working on below challenge

http://codingbat.com/prob/p196409

Array-3 > maxMirror
prev  |  next  |  chance
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

i have not completely understood the description.

How below is 3

maxMirror([1, 2, 1, 4]) → 3
0
Question by:gudii9
[X]
###### Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

• Help others & share knowledge
• Earn cash & points
• 5
• 3
• 2

LVL 38

Expert Comment

ID: 41756129
1 2 1 is a 'mirror' that is 3 characters long
0

LVL 7

Author Comment

ID: 41756461
maxMirror([1, 2, 3, 8, 9, 3, 2, 1]) → 3//1,2,3  has mirror image of 3,2,1 with respect to mirror 8,9

maxMirror([7, 1, 2, 9, 7, 2, 1]) → 2// 1,2 has mirror image of 2,1 with respect to mirror 9.7

maxMirror([1, 2, 1, 4]) → 1,2,1 is base image right where is the mirror image and with respect to what mirror?
0

LVL 38

Assisted Solution

Gerwin Jansen, EE MVE earned 250 total points
ID: 41756551
Last one has no real mirror. Real description carefully. 121 and 121 are the same from left to right and from right to left.... So length is 3
0

LVL 27

Accepted Solution

d-glitch earned 250 total points
ID: 41756552
The center can be outside of the sequence, or inside.
Write the array forward and reverse, and look for the longest common sequence.

FWD = [7, 1, 2, 9, 7, 2, 1]         REV = [1, 2, 7, 9, 2, 1, 7]
Note that there are actually two sequences of length 2.

FWD = [1, 2, 1, 4]                      REV = [4, 1, 2, 1]
Here there is one sequence of length 3.
0

LVL 7

Author Comment

ID: 41760201
not able to get idea on approach to this challenge?
0

LVL 38

Expert Comment

ID: 41760784
Pseudo code! Write down what you would do to recognise a 'mirror'.

Look at the first example, I would start at the beginning, I find a 1, then also start and the end and walk back to be begin, see if I can find another 1. If not or if it's the same, then it's no mirror. If there is another 1, then at the beginning, increase one step and repeat from the end where you've found the other 1.
0

LVL 27

Expert Comment

ID: 41760851
You could also turn this into pseudo code:
Write the array forward and reverse, and look for the longest common sequence.
It doesn't say so it in the challenge, but every element in an array will be a mirror sequence of length 1.
0

LVL 7

Author Comment

ID: 41767106
It doesn't say so it in the challenge, but every element in an array will be a mirror sequence of length 1.
i was not clear on above. can you please elaborate on it? How every element in array is mirror sequence of length 1?
0

LVL 7

Author Comment

ID: 41767191
``````public int maxMirror(int[] nums) {

int len = nums.length;
int total = 0;
int highest = 0;
for (int x = 0; x < len; x++) {
total = 0;
for (int j = len - 1; x + total < len && j > -1; j--) {
if (nums[x + total] == nums[j]) {
total++;
} else {
if (total > 0) {
highest = Math.max(total, highest);
total = 0;
}
}
}
highest = Math.max(total, highest);
}
return highest;
}
``````

above passed all tests
Expected      Run
maxMirror([1, 2, 3, 8, 9, 3, 2, 1]) → 3      3      OK
maxMirror([1, 2, 1, 4]) → 3      3      OK
maxMirror([7, 1, 2, 9, 7, 2, 1]) → 2      2      OK
maxMirror([21, 22, 9, 8, 7, 6, 23, 24, 6, 7, 8, 9, 25, 7, 8, 9]) → 4      4      OK
maxMirror([1, 2, 1, 20, 21, 1, 2, 1, 2, 23, 24, 2, 1, 2, 1, 25]) → 4      4      OK
maxMirror([1, 2, 3, 2, 1]) → 5      5      OK
maxMirror([1, 2, 3, 3, 8]) → 2      2      OK
maxMirror([1, 2, 7, 8, 1, 7, 2]) → 2      2      OK
maxMirror([1, 1, 1]) → 3      3      OK
maxMirror([1]) → 1      1      OK
maxMirror([]) → 0      0      OK
maxMirror([9, 1, 1, 4, 2, 1, 1, 1]) → 3      3      OK
maxMirror([5, 9, 9, 4, 5, 4, 9, 9, 2]) → 7      7      OK
maxMirror([5, 9, 9, 6, 5, 4, 9, 9, 2]) → 2      2      OK
maxMirror([5, 9, 1, 6, 5, 4, 1, 9, 5]) → 3      3      OK
other tests
OK

for every i in forward direction checking every j in reverse. if equal increasing the total variable the highests

``````package com.solution;

public class MaxMirror {

public static void main(String[] args) {
// TODO Auto-generated method stub
int[] ar = { 1, 2, 3, 8, 9, 3, 2, 1 };
int[] ar1 = { 1, 2, 1, 4};
//System.out.println("value===>" + maxMirror(ar));
System.out.println("value===>" + maxMirror(ar1));
}

public static int maxMirror(int[] nums) {
int len = nums.length;
int total = 0;
int highest = 0;
for (int x = 0; x < len; x++) {
total = 0;
for (int j = len - 1; x + total < len && j > -1; j--) {
if (nums[x + total] == nums[j]) {
total++;
} else {
if (total > 0) {
highest = Math.max(total, highest);
total = 0;
}
}
}
highest = Math.max(total, highest);
}
return highest;
}

}
``````

value===>3

i       j     highest
0     3

0     2

0     1
0     0   3

1    3

1     2

1     1

1     0       3

2    3

2     2

2     1

2     0       3

3   3

3     2

3     1

3     0       3
0

LVL 7

Author Comment

ID: 41767195
any improvements or alternate approaches?
0

## Featured Post

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

### Suggested Solutions

Since upgrading to Office 2013 or higher installing the Smart Indenter addin will fail. This article will explain how to install it so it will work regardless of the Office version installed.
This is about my first experience with programming Arduino.
This video will show you how to get GIT to work in Eclipse.   It will walk you through how to install the EGit plugin in eclipse and how to checkout an existing repository.
With the power of JIRA, there's an unlimited number of ways you can customize it, use it and benefit from it. With that in mind, there's bound to be things that I wasn't able to cover in this course. With this summary we'll look at some places to go…
###### Suggested Courses
Course of the Month7 days, 9 hours left to enroll