Vassil_Iliev

spiral matrix

Mar 29th, 2022
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. let size = +gets()
  2. let matrix = Array.from({
  3.     length: size
  4. });
  5.  
  6. for (let i = 0; i < matrix.length; i++) {
  7.     matrix[i] = []
  8. }
  9.  
  10. for (let i = 0; i < matrix.length; i++) {
  11.  
  12.     for (let j = 0; j < matrix.length; j++) {
  13.         matrix[i][j] = '*'
  14.     }
  15. }
  16.  
  17. let startRows = 0;
  18. let endRows = size - 1;
  19. let startCols = 0;
  20. let endCols = size - 1;
  21. let index = 1;
  22.  
  23. while (startRows <= endRows && startCols <= endCols) {
  24.     for (let col = startCols; col <= endCols; col++) {
  25.         matrix[startRows][col] = index++
  26.     }
  27.     startRows++
  28.  
  29.     for (let row = startRows; row <= endRows; row++) {
  30.         matrix[row][endCols] = index++;
  31.     }
  32.     endCols--;
  33.  
  34.     for (let col = endCols; col >= startCols; col--) {
  35.         matrix[endRows][col] = index++;
  36.     }
  37.     endRows--;
  38.  
  39.     for (let row = endRows; row >= startRows; row--) {
  40.         matrix[row][startCols] = index++;
  41.     }
  42.     startCols++;
  43. }
  44.  
  45. for (let i = 0; i < size; i++) {
  46.     console.log(matrix[i].join(' '))
  47. }
Advertisement
Add Comment
Please, Sign In to add comment