Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def reverseOnDiagonals(matrix)
- array = Array.new(matrix.length){Array.new matrix[0].length}
- x = matrix.length - 1
- y = matrix[0].length - 1
- a = 0
- b = 0
- # reverse the first longest diagonal
- while (x >= 0)
- array[a][b] = matrix[x][y]
- x = x - 1
- y = y - 1
- a = a + 1
- b = b + 1
- end
- # reverse the second longest diagonal
- x = matrix.length - 1
- y = 0
- a = 0
- b = matrix[0].length - 1
- while (x >= 0)
- array[a][b] = matrix[x][y]
- x = x - 1
- y = y + 1
- a = a + 1
- b = b - 1
- end
- # fill in the rest
- x = 0
- y = 0
- while (x < matrix.length)
- while (y < matrix[0].length)
- if array[x][y] == nil then
- array[x][y] = matrix[x][y]
- end
- y = y + 1
- end
- x = x + 1
- y = 0
- end
- return array
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement