diff --git a/C++/0001_Two_Sum.cpp b/C++/0001_Two_Sum.cpp new file mode 100644 index 0000000..6f4e135 --- /dev/null +++ b/C++/0001_Two_Sum.cpp @@ -0,0 +1,28 @@ +// LeetCode 1 - Two Sum +// Difficulty: Easy +// Tags: Array, HashMap +// Time Complexity: O(n) +// Space Complexity: O(n) +// Link: https://leetcode.com/problems/two-sum/ + +#include +using namespace std; + +class Solution { +public: + vector twoSum(vector& nums, int target) { + unordered_map mp; // value → index + + for (int i = 0; i < nums.size(); i++) { + int remaining = target - nums[i]; + + // Check if remaining exists in map + if (mp.find(remaining) != mp.end()) { + return {mp[remaining], i}; + } + + mp[nums[i]] = i; + } + return {}; + } +}; diff --git a/C++/0102_Binary_Tree_Level_Order_Traversal.cpp b/C++/0102_Binary_Tree_Level_Order_Traversal.cpp new file mode 100644 index 0000000..7c57bee --- /dev/null +++ b/C++/0102_Binary_Tree_Level_Order_Traversal.cpp @@ -0,0 +1,36 @@ +// LeetCode 102 - Binary Tree Level Order Traversal +// Topic: BFS +// Link: https://leetcode.com/problems/binary-tree-level-order-traversal/ + +#include +using namespace std; + +class Solution { +public: + vector> levelOrder(TreeNode* root) { + vector> result; + if (!root) return result; + + queue q; + q.push(root); + + while (!q.empty()) { + int size = q.size(); + vector level; + + for (int i = 0; i < size; i++) { + TreeNode* node = q.front(); + q.pop(); + + level.push_back(node->val); + + if (node->left) q.push(node->left); + if (node->right) q.push(node->right); + } + + result.push_back(level); + } + + return result; + } +};