From ea3071d52a0e11870121618e0bb27a2d7ecba112 Mon Sep 17 00:00:00 2001 From: Filip Hlasek Date: Thu, 27 Aug 2020 07:31:34 -0700 Subject: [PATCH] fix: clang-format for hamiltons_cycle. (#1054) --- graph/hamiltons_cycle.cpp | 132 +++++++++++++++++++------------------- 1 file changed, 66 insertions(+), 66 deletions(-) diff --git a/graph/hamiltons_cycle.cpp b/graph/hamiltons_cycle.cpp index 06243dad..1506b78d 100644 --- a/graph/hamiltons_cycle.cpp +++ b/graph/hamiltons_cycle.cpp @@ -28,49 +28,49 @@ * @return `false` if there is no Hamiltonian cycle in the graph */ bool hamilton_cycle(const std::vector> &routes) { - const size_t n = routes.size(); - // height of dp array which is 2^n - const size_t height = 1 << n; - std::vector> dp(height, std::vector(n, false)); + const size_t n = routes.size(); + // height of dp array which is 2^n + const size_t height = 1 << n; + std::vector> dp(height, std::vector(n, false)); - // to fill in the [2^i, i] cells with true - for (size_t i = 0; i < n; ++i) { - dp[1 << i][i] = true; - } - for (size_t i = 1; i < height; i++) { - std::vector zeros, ones; - // finding positions with 1s and 0s and separate them - for (size_t pos = 0; pos < n; ++pos) { - if ((1 << pos) & i) { - ones.push_back(pos); - } else { - zeros.push_back(pos); - } + // to fill in the [2^i, i] cells with true + for (size_t i = 0; i < n; ++i) { + dp[1 << i][i] = true; } + for (size_t i = 1; i < height; i++) { + std::vector zeros, ones; + // finding positions with 1s and 0s and separate them + for (size_t pos = 0; pos < n; ++pos) { + if ((1 << pos) & i) { + ones.push_back(pos); + } else { + zeros.push_back(pos); + } + } - for (auto &o : ones) { - if (!dp[i][o]) { - continue; - } + for (auto &o : ones) { + if (!dp[i][o]) { + continue; + } - for (auto &z : zeros) { - if (!routes[o][z]) { - continue; + for (auto &z : zeros) { + if (!routes[o][z]) { + continue; + } + dp[i + (1 << z)][z] = true; + } } - dp[i + (1 << z)][z] = true; - } } - } - bool is_cycle = false; - for (size_t i = 0; i < n; i++) { - is_cycle |= dp[height - 1][i]; - if (is_cycle) { // if true, all subsequent loop will be true. hence - // break - break; + bool is_cycle = false; + for (size_t i = 0; i < n; i++) { + is_cycle |= dp[height - 1][i]; + if (is_cycle) { // if true, all subsequent loop will be true. hence + // break + break; + } } - } - return is_cycle; + return is_cycle; } /** @@ -79,16 +79,16 @@ bool hamilton_cycle(const std::vector> &routes) { * @return None */ static void test1() { - std::vector> arr{ - std::vector({true, true, false, false}), - std::vector({false, true, true, false}), - std::vector({false, false, true, true}), - std::vector({false, false, false, true})}; + std::vector> arr{ + std::vector({true, true, false, false}), + std::vector({false, true, true, false}), + std::vector({false, false, true, true}), + std::vector({false, false, false, true})}; - bool ans = hamilton_cycle(arr); - std::cout << "Test 1... "; - assert(ans); - std::cout << "passed\n"; + bool ans = hamilton_cycle(arr); + std::cout << "Test 1... "; + assert(ans); + std::cout << "passed\n"; } /** @@ -101,17 +101,17 @@ static void test1() { * @return None */ static void test2() { - std::vector> arr{ - std::vector({true, true, false, false}), - std::vector({false, true, true, true}), - std::vector({false, false, true, false}), - std::vector({false, false, false, true})}; + std::vector> arr{ + std::vector({true, true, false, false}), + std::vector({false, true, true, true}), + std::vector({false, false, true, false}), + std::vector({false, false, false, true})}; - bool ans = hamilton_cycle(arr); + bool ans = hamilton_cycle(arr); - std::cout << "Test 2... "; - assert(!ans); // not a cycle - std::cout << "passed\n"; + std::cout << "Test 2... "; + assert(!ans); // not a cycle + std::cout << "passed\n"; } /** @@ -120,17 +120,17 @@ static void test2() { * @return None */ static void test3() { - std::vector> arr{ - std::vector({true, true, true, true}), - std::vector({true, true, true, true}), - std::vector({true, true, true, true}), - std::vector({true, true, true, true})}; + std::vector> arr{ + std::vector({true, true, true, true}), + std::vector({true, true, true, true}), + std::vector({true, true, true, true}), + std::vector({true, true, true, true})}; - bool ans = hamilton_cycle(arr); + bool ans = hamilton_cycle(arr); - std::cout << "Test 3... "; - assert(ans); - std::cout << "passed\n"; + std::cout << "Test 3... "; + assert(ans); + std::cout << "passed\n"; } /** @@ -140,8 +140,8 @@ static void test3() { * @param argv commandline array of arguments (ignored) */ int main(int argc, char **argv) { - test1(); - test2(); - test3(); - return 0; + test1(); + test2(); + test3(); + return 0; } -- GitLab