Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.company;
- import org.junit.Test;
- import java.util.ArrayList;
- import java.util.Collections;
- /**
- * Created by rajan on 21-01-2017.
- **/
- public class SpiralMatrixTraversal {
- public static void main(String[] args) {
- int[][] arr={
- {1,2,3},
- {7,8,9}
- };
- int[][] arr2={{1}};
- ArrayList<Integer> ans= findSpiral(arr);
- for(int i: ans)
- {
- System.out.println(i);
- }
- }
- public static void TraverseList(ListNode head)
- {
- if(head==null) return;
- ListNode temp=head;
- while(temp!=null) {
- System.out.println(temp.data);
- temp = temp.next;
- }
- }
- public static ArrayList<Integer> findSpiral(int[][] arr) {
- ArrayList<Integer> ans =new ArrayList<>();
- int row_min=0;
- int col_min=0;
- int row_max =arr.length -1; //Number of rows
- int col_max =arr[0].length -1; //number of columns
- int row_pos=0;
- int col_pos=0;
- while(row_min<=row_max && col_min<=col_max)
- {
- if(row_pos==row_min && col_pos==col_min) //Upper left
- {
- while(col_pos<=col_max)
- {
- ans.add(arr[row_pos][col_pos]);
- col_pos+=1;
- }
- col_pos-=1;
- row_pos+=1;
- row_min+=1;
- }
- else if(row_pos==row_max && col_pos==col_max) //Lower Right
- {
- while(col_pos>=col_min)
- {
- ans.add(arr[row_pos][col_pos]);
- col_pos-=1;
- }
- col_pos+=1;
- row_pos-=1;
- row_max-=1;
- }
- else if(row_pos==row_min && col_pos==col_max) //Upper right
- {
- while(row_pos<=row_max)
- {
- ans.add(arr[row_pos][col_pos]);
- row_pos+=1;
- }
- row_pos-=1;
- col_pos-=1;
- col_max-=1;
- }
- else if(row_pos==row_max && col_pos==col_min) //Lower left
- {
- while(row_pos>=row_min)
- {
- ans.add(arr[row_pos][col_pos]);
- row_pos-=1;
- }
- row_pos+=1;
- col_pos+=1;
- col_min+=1;
- }
- }
- return ans;
- }
- @Test
- public void test1()
- {
- int[][] arr={{1}};
- ArrayList<Integer>al=new ArrayList<>();
- Integer[] ans={1};
- Collections.addAll(al,ans);
- org.junit.Assert.assertEquals(al,findSpiral(arr));
- }
- @Test
- public void test2()
- {
- int[][] arr={
- {1,2},
- {4,5},
- };
- ArrayList<Integer>al=new ArrayList<>();
- Integer[] ans={1,2,5,4};
- Collections.addAll(al,ans);
- org.junit.Assert.assertEquals(al,findSpiral(arr));
- }
- @Test
- public void test3()
- {
- int[][] arr={
- {1,2,3},
- {4,5,6},
- {7,8,9}
- };
- ArrayList<Integer>al=new ArrayList<>();
- Integer[] ans={1,2,3,6,9,8,7,4,5};
- Collections.addAll(al,ans);
- org.junit.Assert.assertEquals(al,findSpiral(arr));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement