Advertisement
Guest User

Untitled

a guest
Nov 12th, 2019
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.47 KB | None | 0 0
  1. #include <vector>
  2. #include <algorithm>
  3. #include <iostream>
  4.  
  5. using std::vector;
  6.  
  7. int binary_search(vector<int>& nums, int& i,int target) {
  8.  
  9.  
  10. int min = i + 1;
  11. int max = nums.size()-1;
  12.  
  13. while (min <= max) {
  14. int mid = (min + max) / 2;
  15.  
  16. if (nums[i] + nums[mid] == target) {
  17. return mid;
  18. }
  19.  
  20. if (nums[i] + nums[mid] > target) {
  21. max = mid - 1;
  22. }
  23.  
  24. if (nums[i] + nums[mid] < target) {
  25. min = mid + 1;
  26. }
  27.  
  28. }
  29.  
  30. return -1;
  31.  
  32. }
  33.  
  34.  
  35. class Solution {
  36. public:
  37. vector<int> twoSum(vector<int>& nums, int target) {
  38.  
  39. vector<int> nums1 = nums;
  40. sort(nums1.begin(),nums1.end());
  41.  
  42. for (int i = 0; i < nums.size(); ++i)
  43. {
  44. int found = binary_search(nums1, i, target);
  45. if (found + 1){
  46. std::cout << nums1[found] << std::endl;
  47. std::cout << i << std::endl;
  48. for (int j = 0; j < nums.size(); ++j){
  49. if (nums[j] == nums1[found] && j != i){
  50. if (j > i)
  51. return {i, j};
  52. return {j, i};
  53. }
  54. }
  55. }
  56. }
  57. return {0};
  58. }
  59. };
  60.  
  61. int main()
  62. {
  63. Solution s1;
  64. vector<int> v{3, 2, 4};
  65.  
  66. auto vec = s1.twoSum(v,6);
  67.  
  68. std::cout << "\n";
  69.  
  70. for (auto &elem : vec)
  71. std::cout << elem << std::endl;
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement