From 6c58bfe64895041ea89742bad4b002a5ee47b70f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D0=BA=D1=81=D0=B8=D0=BC?= Date: Tue, 10 Dec 2024 01:30:48 +0500 Subject: [PATCH 1/4] Create two-sum.cpp --- src/two-sum.cpp | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 src/two-sum.cpp diff --git a/src/two-sum.cpp b/src/two-sum.cpp new file mode 100644 index 0000000..275b289 --- /dev/null +++ b/src/two-sum.cpp @@ -0,0 +1,25 @@ +#include "two-sum.hpp" + +#define ARRAY_SIZE 5 + +bool two_sum( + const int nums[ARRAY_SIZE], + const int target, + std::size_t& index0, + std::size_t& index1 +) { + std::unordered_map < int, std::size_t > container; + // Объявляет хэш-таблицу и создает пустой контейнер. + for (std::size_t i = 0; i < ARRAY_SIZE; ++i) { + int complement = target - nums[i]; + if (container.find(complement) != container.end()) { + index0 = container[complement]; + index1 = i; + return true; + } + container[nums[i]] = i; + } + return false; +} +/*Использовал хэш таблицу для сокращения асимптотической сложности до O(n), +так как поиск в хэш-таблице выполняется за O(1)*/ From cd8afba3b24a9a8ac013836a8312cf8a94a38961 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D0=BA=D1=81=D0=B8=D0=BC?= Date: Tue, 10 Dec 2024 01:51:21 +0500 Subject: [PATCH 2/4] Update two-sum.cpp --- src/two-sum.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/two-sum.cpp b/src/two-sum.cpp index 275b289..254c78a 100644 --- a/src/two-sum.cpp +++ b/src/two-sum.cpp @@ -1,7 +1,5 @@ #include "two-sum.hpp" -#define ARRAY_SIZE 5 - bool two_sum( const int nums[ARRAY_SIZE], const int target, From b93864a31e926d68b3d97b2a9e3e9799ccd8ddb6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D0=BA=D1=81=D0=B8=D0=BC?= Date: Wed, 25 Dec 2024 01:10:26 +0500 Subject: [PATCH 3/4] Update two-sum.cpp --- src/two-sum.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/two-sum.cpp b/src/two-sum.cpp index 254c78a..81c749f 100644 --- a/src/two-sum.cpp +++ b/src/two-sum.cpp @@ -1,4 +1,5 @@ #include "two-sum.hpp" +std::unordered_map bool two_sum( const int nums[ARRAY_SIZE], From 7439d612064287308b24d8c4813810d35e57c654 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D0=BA=D1=81=D0=B8=D0=BC?= Date: Sat, 25 Jan 2025 14:02:18 +0500 Subject: [PATCH 4/4] Update two-sum.cpp --- src/two-sum.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/two-sum.cpp b/src/two-sum.cpp index 81c749f..58f4905 100644 --- a/src/two-sum.cpp +++ b/src/two-sum.cpp @@ -1,5 +1,5 @@ #include "two-sum.hpp" -std::unordered_map +#include bool two_sum( const int nums[ARRAY_SIZE],