From d3c50c56ee9eb587bf46cba2559fa6975d435205 Mon Sep 17 00:00:00 2001 From: Jikuhara Date: Wed, 11 Jun 2025 17:43:11 +0900 Subject: [PATCH 1/2] 1. Two Sum https://leetcode.com/problems/two-sum/description/ --- 1_two_sum/a.out | Bin 0 -> 55352 bytes 1_two_sum/memo.md | 137 ++++++++++++++++++++++++++++++++++++++++++++ 1_two_sum/step1.cpp | 26 +++++++++ 1_two_sum/step2.cpp | 26 +++++++++ 1_two_sum/step3.cpp | 23 ++++++++ 1_two_sum/two_sum | Bin 0 -> 59944 bytes 6 files changed, 212 insertions(+) create mode 100755 1_two_sum/a.out create mode 100644 1_two_sum/memo.md create mode 100644 1_two_sum/step1.cpp create mode 100644 1_two_sum/step2.cpp create mode 100644 1_two_sum/step3.cpp create mode 100755 1_two_sum/two_sum diff --git a/1_two_sum/a.out b/1_two_sum/a.out new file mode 100755 index 0000000000000000000000000000000000000000..4b77f74a72706af6195097ef4b6eb017aa51084f GIT binary patch literal 55352 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 LvXTlVMdSYhesle% literal 0 HcmV?d00001 diff --git a/1_two_sum/memo.md b/1_two_sum/memo.md new file mode 100644 index 0000000..9043d35 --- /dev/null +++ b/1_two_sum/memo.md @@ -0,0 +1,137 @@ +# 1. Two Sum + +https://leetcode.com/problems/two-sum/description/ + +初めてCPPで書いてみる。 + + +## Comments + +### step1 +```C++ +#include +#include +#include + +std::vector twoSum(std::vector& nums, int target) { + std::unordered_map num_to_index; + + for (int i = 0; i < (int)nums.size(); ++i) { + int complement = target - nums[i]; + if (num_to_index.find(complement) != num_to_index.end()) { + return {num_to_index[complement], i}; + } + num_to_index[nums[i]] = i; + } + return {}; +} + +int main() { + std::vector nums = {2, 7, 11, 15}; + int target = 9; + + std::vector result = twoSum(nums, target); + std::cout << "Indices : " << result[0] << ", " << result[1] << std::endl; + + return 0; +} +``` + +とりあえず、答え見ながら写して書いてみた。 +全体的にC言語と同じ。 +#include と、型宣言の書き方が違うくらい。 +vectorが便利すぎる。mallocもfreeもしなくていいのすごい。 +.find .sizeなどで、一気に個数などを求められるのも便利。 +とりあえず、次は見ずに書いてみる。 + +* + +### step2 +```c++ +#include +#include +#include + +std::vector twoSum(std::vector& nums, int target) { + std::unordered_map num_to_index; + + for (int i = 0; i < (int)nums.size() ; ++i) { + int complement = target - nums[i]; + if (num_to_index.find(complement) != num_to_index.end()) { + return {num_to_index[complement], i}; + } + num_to_index[nums[i]] = i; + } + return {}; +} + +int main() { + std::vector nums = {2, 7, 11, 15}; + int target = 9; + + std::vector result =twoSum(nums, target); + std::cout << "Indices : " << result[0] << ", " << result[1] << std::endl; + + return 0; +} +``` + +全然見ずに書けなかったので諦め。 +やっぱ理解していないところは書けない。 +特にunordered_mapの使い方がわからなかった。 +これなんや??? +調べてみる。 + +[unordered_map - cpprefjp C++日本語リファレンス](https://cpprefjp.github.io/reference/unordered_map/unordered_map.html) + +hash tableらしい。 +今回使用しているのは、intを入れてintを返すモノかな。 +うーん、いまいちイメージがつかない。 +```c++ + for (int i = 0; i < (int)nums.size() ; ++i) { + int complement = target - nums[i]; + if (num_to_index.find(complement) != num_to_index.end()) { + return {num_to_index[complement], i}; + } + num_to_index[nums[i]] = i; + } +``` +構造的には、for → ifなので、「初めて〇〇したとき」という論理。 +今回の問題から逆算すると、おそらく「初めて2つの和がtargetと一致したとき」ということだろう。 +ってことは、if文内条件式は、「2つの和が一致したとき」。 +この時に、num_to_index[complement]は、complementの値を持つ要素のindexを返す。 +そして、iは現在の要素のindex。 + +うーん、イマイチわからん!! +もう一回書いてみるか。 +* + +### step3 +```c++ +#include +#include +#include + +std::vector twoSum(std::vector& nums, int target) { + std::unordered_map num_to_index; + for (int i = 0; i < (int)nums.size(); ++i) { + int complement = target - nums[i]; + if (num_to_index.find(complement) != num_to_index.end()) { + return {num_to_index[complement], i}; + } + num_to_index[nums[i]] = i; + } + return {}; +} + +int main() { + std::vector nums = {2, 11, 3, 4, 6, 7}; + int target = 9; + std::vector result = twoSum(nums, target); + std::cout << "Incides : " << result[0] << ", " << result[1] << std::endl; + return 0; +} +``` +やっぱ、unordered_mapの使い方がわからない。 + +* diff --git a/1_two_sum/step1.cpp b/1_two_sum/step1.cpp new file mode 100644 index 0000000..fa870d1 --- /dev/null +++ b/1_two_sum/step1.cpp @@ -0,0 +1,26 @@ +#include +#include +#include + +std::vector twoSum(std::vector& nums, int target) { + std::unordered_map num_to_index; + + for (int i = 0; i < (int)nums.size(); ++i) { + int complement = target - nums[i]; + if (num_to_index.find(complement) != num_to_index.end()) { + return {num_to_index[complement], i}; + } + num_to_index[nums[i]] = i; + } + return {}; +} + +int main() { + std::vector nums = {2, 7, 11, 15}; + int target = 9; + + std::vector result = twoSum(nums, target); + std::cout << "Indices : " << result[0] << ", " << result[1] << std::endl; + + return 0; +} diff --git a/1_two_sum/step2.cpp b/1_two_sum/step2.cpp new file mode 100644 index 0000000..f80f9d5 --- /dev/null +++ b/1_two_sum/step2.cpp @@ -0,0 +1,26 @@ +#include +#include +#include + +std::vector twoSum(std::vector& nums, int target) { + std::unordered_map num_to_index; + + for (int i = 0; i < (int)nums.size() ; ++i) { + int complement = target - nums[i]; + if (num_to_index.find(complement) != num_to_index.end()) { + return {num_to_index[complement], i}; + } + num_to_index[nums[i]] = i; + } + return {}; +} + +int main() { + std::vector nums = {2, 7, 11, 15}; + int target = 9; + + std::vector result =twoSum(nums, target); + std::cout << "Indices : " << result[0] << ", " << result[1] << std::endl; + + return 0; +} diff --git a/1_two_sum/step3.cpp b/1_two_sum/step3.cpp new file mode 100644 index 0000000..25cc3c1 --- /dev/null +++ b/1_two_sum/step3.cpp @@ -0,0 +1,23 @@ +#include +#include +#include + +std::vector twoSum(std::vector& nums, int target) { + std::unordered_map num_to_index; + for (int i = 0; i < (int)nums.size(); ++i) { + int complement = target - nums[i]; + if (num_to_index.find(complement) != num_to_index.end()) { + return {num_to_index[complement], i}; + } + num_to_index[nums[i]] = i; + } + return {}; +} + +int main() { + std::vector nums = {2, 11, 3, 4, 6, 7}; + int target = 9; + std::vector result = twoSum(nums, target); + std::cout << "Incides : " << result[0] << ", " << result[1] << std::endl; + return 0; +} diff --git a/1_two_sum/two_sum b/1_two_sum/two_sum new file mode 100755 index 0000000000000000000000000000000000000000..f981ec1b67bd7293d775e8d4d55735eedb50712c GIT binary patch literal 59944 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 Date: Thu, 12 Jun 2025 17:07:49 +0900 Subject: [PATCH 2/2] 1. Two Sum https://leetcode.com/problems/two-sum/description --- 1_two_sum/memo.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/1_two_sum/memo.md b/1_two_sum/memo.md index 9043d35..7e6fbb7 100644 --- a/1_two_sum/memo.md +++ b/1_two_sum/memo.md @@ -132,6 +132,5 @@ int main() { return 0; } ``` -やっぱ、unordered_mapの使い方がわからない。 - +やっぱ、unordered_mapの使い方がわからない... *