Advertisement
vit134

Поиск чисел в массиве (Яндекс)

Nov 9th, 2018
268
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2.     Поиск чисел в массиве с определённой суммой
  3. */
  4.  
  5.  
  6. // линейная сложность
  7. function pairOfNumbers(arr, target) {
  8.     const compl = {};
  9.     let res;
  10.     for (let i = 0; i < arr.length; i++) {
  11.         let a = target - arr[i];
  12.        
  13.         if (a in compl) {
  14.             res = [compl[a], i]
  15.         }
  16.        
  17.         compl[arr[i]] = i;
  18.     }
  19.    
  20.     return res
  21. }
  22.  
  23. // Сложность O(n * n);
  24. function pairOfNumbers(nums, target) {
  25.     let result = [];
  26.     let stack = nums;
  27.     let i = stack.length - 1;
  28.    
  29.     while (i > 0) {
  30.         let num = stack.pop();
  31.        
  32.         stack.forEach((el, ii) => {
  33.             if (num + el === target) result.push(ii, i);
  34.         })
  35.        
  36.         i--;
  37.     }
  38.    
  39.     return result;
  40. };
  41.  
  42. console.log(pairOfNumbers([15, 10, 3, 7], 17))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement