slower
@slower

Как найти числа в одном массиве с определенной суммой?

Мне дан массив целых чисел и целое число k. Нужно определить, есть ли в массиве два числа, сумма которых равна k .

Пример:

Вход: nums = [10, 15, 3, 7], k = 17
Выход: true

Примечания
В качестве решения предоставьте функцию следующего вида:

/** @returns Boolean */  
module.exports = function(nums, k) {  
   // код
}

let arr = [10, 15, 3, 7];

var sum = 17;

var isit;

function tosum(nums, k) {

	var isit = 0;

	for(let i = 0; i < nums.length - 1; i++){
		for(let j = i + 1; j < nums.length; j++){
			if(nums[i] + nums[i+1] == k)
				isit = 1;
		}
	}

	console.log(isit); // Выводит 0, а не 1

}

tosum(arr, sum)
  • Вопрос задан
  • 2559 просмотров
Решения вопроса 1
@fixeri
"use strict";
      
      const exports = (nums, k) => nums
            .some((n1, i, arr) => arr
              .some((n2, j) => i !== j && n1 + n2 === k));

      window.console.log( exports([14, 15, 3, 7], 17) );
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
hzzzzl
@hzzzzl
https://stackoverflow.com/a/49469058

чуть поправить чтобы bool возвращался
Ответ написан
@KononovD
А с чем проблема возникла? Что не получилось? Это задание похоже на задачу с собеседования)

Самое простое решение вот:
2 вложенных цикла от 0 до массив.length-1.
Если nums[i]+nums[j]===k return true.
За циклами делаем return false.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы