diff options
| author | crupest <crupest@outlook.com> | 2021-03-02 20:18:28 +0800 | 
|---|---|---|
| committer | crupest <crupest@outlook.com> | 2021-03-02 20:18:28 +0800 | 
| commit | f8d4dd6131c30de4e8843e77baed8d07378e436c (patch) | |
| tree | e13a194d999b582c28e5c064f811b41857041960 | |
| parent | 4221ef4f14eb6fc7ff05922d574331bf8f683382 (diff) | |
| download | crupest-f8d4dd6131c30de4e8843e77baed8d07378e436c.tar.gz crupest-f8d4dd6131c30de4e8843e77baed8d07378e436c.tar.bz2 crupest-f8d4dd6131c30de4e8843e77baed8d07378e436c.zip  | |
import(solutions): Add leetcode 304.
| -rw-r--r-- | works/solutions/leetcode/cpp/304.cpp | 35 | 
1 files changed, 35 insertions, 0 deletions
diff --git a/works/solutions/leetcode/cpp/304.cpp b/works/solutions/leetcode/cpp/304.cpp new file mode 100644 index 0000000..ab22281 --- /dev/null +++ b/works/solutions/leetcode/cpp/304.cpp @@ -0,0 +1,35 @@ +#include <vector>
 +
 +using std::vector;
 +
 +class NumMatrix {
 +private:
 +  std::vector<std::vector<int>> prefix_sum_;
 +
 +public:
 +  NumMatrix(vector<vector<int>> &matrix)
 +      : prefix_sum_(
 +            matrix.size() + 1,
 +            std::vector<int>(matrix.empty() ? 1 : matrix.front().size() + 1)) {
 +    const int row_count = matrix.size();
 +    const int col_count = matrix.empty() ? 0 : matrix.front().size();
 +
 +    for (int i = 0; i < row_count; i++)
 +      for (int j = 0; j < col_count; j++) {
 +        prefix_sum_[i + 1][j + 1] = prefix_sum_[i][j + 1] +
 +                                    prefix_sum_[i + 1][j] - prefix_sum_[i][j] +
 +                                    matrix[i][j];
 +      }
 +  }
 +
 +  int sumRegion(int row1, int col1, int row2, int col2) {
 +    return prefix_sum_[row1][col1] - prefix_sum_[row2 + 1][col1] -
 +           prefix_sum_[row1][col2 + 1] + prefix_sum_[row2 + 1][col2 + 1];
 +  }
 +};
 +
 +/**
 + * Your NumMatrix object will be instantiated and called as such:
 + * NumMatrix* obj = new NumMatrix(matrix);
 + * int param_1 = obj->sumRegion(row1,col1,row2,col2);
 + */
\ No newline at end of file  | 
