@campus1

Как можно упростить код?

Привет. Есть задачка - find two number whick sums equal to number
Я сделал ее стандартно двумя циклами:
var twoSum = function(nums, target) {
    for(let i = 0; i < nums.length; i++) {
        for(let j = i + 1; j < nums.length; j++) {
            if(nums[i] + nums[j] === target) {
                return [i, j]
            }
        }
    }
};


Как можно упростить?
  • Вопрос задан
  • 140 просмотров
Решения вопроса 1
zendor
@zendor
O(n) решение:
function twoSum(a, t) {
  let o = {};
  for (let i = 0; i < a.length; i++) {
    if (o[a[i]] !== undefined) return [o[a[i]], i];
    o[t - a[i]] = i;
  }
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы