From 63c06c8ce376ab8f5da0c7764d7190ca8b7a676f Mon Sep 17 00:00:00 2001 From: Amit S Sahu Date: Tue, 29 Oct 2024 09:27:39 +0530 Subject: [PATCH] Time: 3 ms (100%), Space: 54.5 MB (100%) - LeetHub --- ...684-maximum-number-of-moves-in-a-grid.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 2684-maximum-number-of-moves-in-a-grid/2684-maximum-number-of-moves-in-a-grid.java diff --git a/2684-maximum-number-of-moves-in-a-grid/2684-maximum-number-of-moves-in-a-grid.java b/2684-maximum-number-of-moves-in-a-grid/2684-maximum-number-of-moves-in-a-grid.java new file mode 100644 index 0000000..24606b1 --- /dev/null +++ b/2684-maximum-number-of-moves-in-a-grid/2684-maximum-number-of-moves-in-a-grid.java @@ -0,0 +1,19 @@ +class Solution { + int max = 0; + public int maxMoves(int[][] grid) { + for (int i = 0; i < grid.length; i++) { + getMoves(grid, i, 0, 0, 0); + } + return max; + } + + private void getMoves(int[][] grid, int i, int j, int steps, int prev) { + if (i >= 0 && i < grid.length && j >= 0 && j < grid[0].length && grid[i][j] > 0 && Math.abs(grid[i][j]) > Math.abs(prev)) { + grid[i][j] = -grid[i][j]; + max = Math.max(max, steps); + getMoves(grid, i - 1, j + 1, steps + 1, grid[i][j]); + getMoves(grid, i, j + 1, steps + 1, grid[i][j]); + getMoves(grid, i + 1, j + 1, steps + 1, grid[i][j]); + } + } +} \ No newline at end of file