// 167. Two Sum Ii

Explore on LeetCode
167_two_sum_ii.rb
# frozen_string_literal: true
# @param {Integer[]} numbers
# @param {Integer} target
# @return {Integer[]}
def two_sum(numbers, target)
p1 = 0
p2 = numbers.length - 1
while p1 < p2
break if numbers[p1] + numbers[p2] == target
p2 -= 1 if numbers[p1] + numbers[p2] > target
p1 += 1 if numbers[p1] + numbers[p2] < target
end
[p1 + 1, p2 + 1]
end
class Test167 < Minitest::Test
def test_1
assert_equal two_sum([2, 7, 11, 15], 9), [1, 2]
end
def test_2
assert_equal two_sum([2, 3, 4], 6), [1, 3]
end
def test_3
assert_equal two_sum([-1, 0], -1), [1, 2]
end
end