From d8f3b40085619cb680c8f227c65a1f5acc393223 Mon Sep 17 00:00:00 2001 From: crupest Date: Tue, 23 Feb 2021 21:07:19 +0800 Subject: Move leetcode solutions to subdir. --- cpp/1219.cpp | 64 ------------------------------------------------------------ 1 file changed, 64 deletions(-) delete mode 100644 cpp/1219.cpp (limited to 'cpp/1219.cpp') diff --git a/cpp/1219.cpp b/cpp/1219.cpp deleted file mode 100644 index 5f72206..0000000 --- a/cpp/1219.cpp +++ /dev/null @@ -1,64 +0,0 @@ -#include - -using std::vector; - -class Solution -{ -public: - static void dfs(const vector> &grid, bool **visited, int row, int col, int row_max, int col_max, int ¤t, int &max) - { - int cell = grid[row][col]; - bool &cell_visited = visited[row][col]; - if (cell == 0 || cell_visited) - return; - current += cell; - cell_visited = true; - - if (current > max) - max = current; - - if (row < row_max) - dfs(grid, visited, row + 1, col, row_max, col_max, current, max); - - if (col < col_max) - dfs(grid, visited, row, col + 1, row_max, col_max, current, max); - - if (row > 0) - dfs(grid, visited, row - 1, col, row_max, col_max, current, max); - - if (col > 0) - dfs(grid, visited, row, col - 1, row_max, col_max, current, max); - - cell_visited = false; - current -= cell; - } - - int getMaximumGold(vector> &grid) - { - int row_max = grid.size(); - int col_max = grid.front().size(); - - bool **visited = new bool *[row_max]; - for (int i = 0; i < row_max; i++) - { - visited[i] = new bool[col_max]{false}; - } - - int current = 0; - int max = 0; - - for (int row_start = 0; row_start < row_max; row_start++) - for (int col_start = 0; col_start < col_max; col_start++) - { - dfs(grid, visited, row_start, col_start, row_max - 1, col_max - 1, current, max); - } - - for (int i = 0; i < row_max; i++) - { - delete[] visited[i]; - } - delete[] visited; - - return max; - } -}; \ No newline at end of file -- cgit v1.2.3