From 9243c4ff90f7f4f8a4fc02e2b5debdf2177d4c0b Mon Sep 17 00:00:00 2001 From: David Date: Tue, 15 Nov 2022 05:18:13 +0000 Subject: [PATCH] clang-format and clang-tidy fixes for 02439b57 --- .../strassen_matrix_multiplication.cpp | 2 +- range_queries/sparse_table.cpp | 52 ++++++++++--------- 2 files changed, 29 insertions(+), 25 deletions(-) diff --git a/divide_and_conquer/strassen_matrix_multiplication.cpp b/divide_and_conquer/strassen_matrix_multiplication.cpp index 054ef482f..065644ac5 100644 --- a/divide_and_conquer/strassen_matrix_multiplication.cpp +++ b/divide_and_conquer/strassen_matrix_multiplication.cpp @@ -26,7 +26,7 @@ class Matrix { template ::value, Integer>::type> - Matrix(const Integer size) { + explicit Matrix(const Integer size) { for (size_t i = 0; i < size; ++i) { _mat.emplace_back(std::vector(size, 0)); } diff --git a/range_queries/sparse_table.cpp b/range_queries/sparse_table.cpp index 465532f3b..4f13945ba 100644 --- a/range_queries/sparse_table.cpp +++ b/range_queries/sparse_table.cpp @@ -1,21 +1,23 @@ /** * @file sparse_table.cpp - * @brief Implementation of [Sparse Table](https://en.wikipedia.org/wiki/Range_minimum_query) data structure + * @brief Implementation of [Sparse + * Table](https://en.wikipedia.org/wiki/Range_minimum_query) data structure * * @details * Sparse Table is a data structure, that allows answering range queries. - * It can answer most range queries in O(logn), but its true power is answering range minimum queries - * or equivalent range maximum queries). For those queries it can compute the answer in O(1) time. + * It can answer most range queries in O(logn), but its true power is answering + * range minimum queries or equivalent range maximum queries). For those queries + * it can compute the answer in O(1) time. * * * Running Time Complexity \n * * Build : O(NlogN) \n * * Range Query : O(1) \n -*/ + */ -#include +#include #include #include -#include +#include /** * @namespace range_queries @@ -26,19 +28,19 @@ namespace range_queries { * @namespace sparse_table * @brief Range queries using sparse-tables */ - namespace sparse_table { +namespace sparse_table { /** * This function precomputes intial log table for further use. * @param n value of the size of the input array * @return corresponding vector of the log table */ -template +template std::vector computeLogs(const std::vector& A) { int n = A.size(); std::vector logs(n); logs[1] = 0; - for (int i = 2 ; i < n ; i++) { - logs[i] = logs[i/2] + 1; + for (int i = 2; i < n; i++) { + logs[i] = logs[i / 2] + 1; } return logs; } @@ -50,19 +52,20 @@ std::vector computeLogs(const std::vector& A) { * @param logs array of the log table * @return created sparse table data structure */ -template -std::vector > buildTable(const std::vector& A, const std::vector& logs) { +template +std::vector > buildTable(const std::vector& A, + const std::vector& logs) { int n = A.size(); - std::vector > table(20, std::vector(n+5, 0)); + std::vector > table(20, std::vector(n + 5, 0)); int curLen = 0; - for (int i = 0 ; i <= logs[n] ; i++) { + for (int i = 0; i <= logs[n]; i++) { curLen = 1 << i; - for (int j = 0 ; j + curLen < n ; j++) { + for (int j = 0; j + curLen < n; j++) { if (curLen == 1) { table[i][j] = A[j]; - } - else { - table[i][j] = std::min(table[i-1][j], table[i-1][j + curLen/2]); + } else { + table[i][j] = + std::min(table[i - 1][j], table[i - 1][j + curLen / 2]); } } } @@ -77,14 +80,15 @@ std::vector > buildTable(const std::vector& A, const std::vect * @param table sparse table data structure for the input array * @return minimum value for the [beg, end] range for the input array */ -template -int getMinimum(int beg, int end, const std::vector& logs, const std::vector >& table) { +template +int getMinimum(int beg, int end, const std::vector& logs, + const std::vector >& table) { int p = logs[end - beg + 1]; int pLen = 1 << p; return std::min(table[p][beg], table[p][end - pLen + 1]); } -} -} // namespace range_queries +} // namespace sparse_table +} // namespace range_queries /** * Main function @@ -92,10 +96,10 @@ int getMinimum(int beg, int end, const std::vector& logs, const std::vector A{1, 2, 0, 3, 9}; std::vector logs = range_queries::sparse_table::computeLogs(A); - std::vector > table = range_queries::sparse_table::buildTable(A, logs); + std::vector > table = + range_queries::sparse_table::buildTable(A, logs); assert(range_queries::sparse_table::getMinimum(0, 0, logs, table) == 1); assert(range_queries::sparse_table::getMinimum(0, 4, logs, table) == 0); assert(range_queries::sparse_table::getMinimum(2, 4, logs, table) == 0); return 0; } -