If i got the question correct then its Simple & Straightforward, We need to
Check All neighbors, With Boundary conditions
public static List<Integer> findLocalMaxima(Integer a[][])
{
List<Integer> locals = new ArrayList<Integer>();
int row=a.length;
for (int i = 0; i < row;i++)
{
int col=a[i].length;
for (int j = 0; j < col; j++)
{
Integer lm=a[i][j];
Boolean aa= ( lm > a[i-1][j-1] ) && (i>0 && j>0 );
Boolean b=(lm > a[i][j-1]) && j>0;
Boolean c= (lm > a[i-1][j]) && i>0;
Boolean d= (lm > a[i][j+1]) && j<col-1;
Boolean e= (lm > a[i-1][j+1]) && (i>0 && j<col-1);
Boolean f= (lm > a[i+1][j-1]) && (i<row-1 && j>0);
Boolean g= (lm > a[i+1][j]) && i<row-1;
Boolean h= (lm > a[i+1][j+1]) && (i<row-1 && j<col-1);
if( aa && b && c && d && e && f && g && h )
locals.add(a[i][j]);
}
}
return locals;
}
correct me if anything wrong ?
*Thanks
Shashank Mani
Computer Science
Birla Institute of Technology Mesra*
--
You received this message because you are subscribed to the Google Groups
"Algorithm Geeks" group.
To view this discussion on the web visit
https://groups.google.com/d/msg/algogeeks/-/5xmX_nyPRKkJ.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/algogeeks?hl=en.