sweet1cris

Untitled

Mar 7th, 2018
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.29 KB | None | 0 0
  1. public class Solution {
  2.   public List<Integer> spiral(int[][] matrix) {
  3.         List<Integer> res = new ArrayList<Integer>();
  4.         if (matrix.length == 0 || matrix[0].length == 0) return res;
  5.         int left = 0, right = matrix[0].length - 1;
  6.         int up = 0, down = matrix.length - 1;
  7.         helper(matrix, left, right, up, down, res);
  8.         return res;
  9.     }
  10.    
  11.     public void helper(int[][] matrix, int left, int right, int up, int down, List<Integer> res) {
  12.         if (up > down || left > right) return;
  13.         if (up == down) {
  14.             for (int i = left; i <= right; i++) {
  15.                 res.add(matrix[up][i]);
  16.             }
  17.             return;
  18.         }
  19.         if (left == right) {
  20.             for (int i = up; i <= down; i++) {
  21.                 res.add(matrix[i][left]);
  22.             }
  23.             return;
  24.         }
  25.         for (int i = left; i < right; i++) {
  26.             res.add(matrix[up][i]);
  27.         }
  28.         for (int i = up; i < down; i++) {
  29.             res.add(matrix[i][right]);
  30.         }
  31.         for (int i = right; i > left; i--) {
  32.             res.add(matrix[down][i]);
  33.         }
  34.         for (int i = down; i > up; i--) {
  35.             res.add(matrix[i][left]);
  36.         }
  37.         helper(matrix, left + 1, right - 1, up + 1, down - 1, res);
  38.     }
  39. }
Advertisement
Add Comment
Please, Sign In to add comment