diff --git a/Algorithms/Easy/167_TwoSumII/Solution.cpp b/Algorithms/Easy/167_TwoSumII/Solution.cpp new file mode 100644 index 0000000..7e8a052 --- /dev/null +++ b/Algorithms/Easy/167_TwoSumII/Solution.cpp @@ -0,0 +1,23 @@ +class Solution { +public: + vector twoSum(vector& numbers, int target) { + int index1 = 0, index2 = numbers.size() - 1, sum; + vector answer; + + while(index1 < index2) { + sum = numbers[index1] + numbers[index2]; + + if(sum == target) + break; + else if(sum < target) + index1++; + else + index2--; + } + + answer.push_back(index1 + 1); + answer.push_back(index2 + 1); + + return answer; + } +}; \ No newline at end of file diff --git a/Algorithms/Easy/1_TwoSum/SolutionOne.cpp b/Algorithms/Easy/1_TwoSum/SolutionOne.cpp new file mode 100644 index 0000000..56a6c76 --- /dev/null +++ b/Algorithms/Easy/1_TwoSum/SolutionOne.cpp @@ -0,0 +1,33 @@ +class Solution { +public: + vector twoSum(vector& nums, int target) { + vector> valueIndexPair; + vector answer; + int index1, index2, sum; + + for(int k = 0; k < nums.size(); k++) { + valueIndexPair.push_back(pair(nums[k], k)); + } + + sort(valueIndexPair.begin(), valueIndexPair.end()); + + index1 = 0; + index2 = valueIndexPair.size() - 1; + + while(index1 < index2) { + sum = valueIndexPair[index1].first + valueIndexPair[index2].first; + + if(sum == target) + break; + else if(sum < target) + index1++; + else + index2--; + } + + answer.push_back(valueIndexPair[index1].second); + answer.push_back(valueIndexPair[index2].second); + + return answer; + } +};