Advertisement
Guest User

Untitled

a guest
Jan 9th, 2021
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.26 KB | None | 0 0
  1. class Solution {
  2.     private List<Integer> answer = new LinkedList();
  3.     public List<Integer> spiralOrder(int[][] matrix) {
  4.        
  5.         int up = 0;
  6.         int down = matrix.length - 1;
  7.         int right = matrix[0].length -1;
  8.         int left = 0;
  9.        
  10.         int entry = 1;
  11.        
  12.         while(entry <= matrix[0].length * matrix.length)
  13.         {
  14.             //GO RIGHT
  15.             for(int i = up; i <= right; i++)
  16.             {
  17.                 if(entry > matrix[0].length * matrix.length)
  18.                 {
  19.                     break;
  20.                 }
  21.            
  22.                
  23.                
  24.                 answer.add(matrix[up][i]);
  25.                 entry++;
  26.             }
  27.  
  28.             up++;
  29.             //GO DOWN
  30.             for(int i = up; i <= down; i++)
  31.             {
  32.                 if(entry > matrix[0].length * matrix.length)
  33.                 {
  34.                     break;
  35.                 }
  36.                
  37.                 answer.add(matrix[i][right]);
  38.                 entry++;
  39.             }
  40.        
  41.             right--;
  42.            
  43.             //GO LEFT
  44.             for(int i = right; i >= left; i--)
  45.             {
  46.                 if(entry > matrix[0].length * matrix.length)
  47.                 {
  48.                     break;
  49.                 }
  50.                
  51.                 answer.add(matrix[down][i]);
  52.                 entry++;
  53.             }
  54.             down--;
  55.            
  56.             //Go UP
  57.             for(int i = down; i >= up; i--)
  58.             {
  59.                 if(entry > matrix[0].length * matrix.length)
  60.                 {
  61.                     break;
  62.                 }
  63.                
  64.                 answer.add(matrix[i][left]);
  65.                 entry++;
  66.             }
  67.            
  68.             left++;
  69.         }
  70.  
  71.        
  72.         return answer;
  73.        
  74.     }
  75.    
  76.     public int[][] rotateArray90DegreesToTheLeft(int[][] matrix) {
  77.         int[][] tmpArray = new int[matrix[0].length][matrix.length-1];
  78.         for(int j=matrix[0].length -1; j>=0; j--)
  79.         {
  80.             for(int i=1; i<matrix.length; i++)
  81.             {
  82.                 tmpArray[ matrix[0].length - 1  - j][i-1] = matrix[i][j];
  83.             }
  84.         }
  85.         return tmpArray;
  86.     }
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement