Advertisement
SalmaYasser

Untitled

Nov 7th, 2019
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.25 KB | None | 0 0
  1. // you can use includes, for example:
  2. // #include <algorithm>
  3.  
  4. // you can write to stdout for debugging purposes, e.g.
  5. // cout << "this is a debug message" << endl;
  6.  
  7. #include <unordered_map>
  8.  
  9. #include <vector>
  10. #include<algorithm>
  11. #include <utility>
  12.  
  13. int twosum (vector <float> & n , int target)
  14. {
  15. int mod = 1000000007;
  16. unordered_map <float, float> my_map;
  17. unordered_map < pair <int,int>, bool > p;
  18. int res = 0;
  19.  
  20. for (int i = 0 ; i < n.size(); i ++)
  21. {
  22. float cur = n[i];
  23. int find_me = target - cur;
  24. if (my_map.find(find_me) != my_map.end())
  25. {
  26. if (p.find(my_map[find_me], i) == p.end())
  27. {
  28.  
  29. res++;
  30. res%=mod;
  31.  
  32. p[{(my_map[find_me],i}] = true;
  33. p[{i,my_map[find_me]}] = true;
  34.  
  35. }
  36.  
  37. }
  38. else
  39. my_map[cur] = i;
  40. }
  41.  
  42. return res;
  43. }
  44. int solution(vector<int> &X, vector<int> &Y) {
  45. // write your code in C++14 (g++ 6.2.0)
  46. int sz = X.size();
  47. vector < float> nums (sz);
  48.  
  49. for (int i = 0 ; i <sz; i ++)
  50. {
  51. nums[i]= X[i]/Y[i];
  52. }
  53. int target = 1;
  54. return twosum (nums,target);
  55.  
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement