LeetCode/study-plan/algorithm/day-01/search-insert-position.rb

36 lines
752 B
Ruby
Raw Normal View History

# @param {Integer[]} nums
# @param {Integer} target
# @return {Integer}
def search_insert(nums, target)
left = 0
right = nums.size
while left < right do
mid = (left + right).div(2)
if nums[mid] == target then
return mid
elsif nums[mid] < target then
left = mid + 1
else
right = mid
end
end
return left
end
RSpec.describe "search_insert" do
it "nums = [1,3,5,6], target = 5" do
expect(search_insert([1,3,5,6], 5)).to eq(2)
end
it "nums = [1,3,5,6], target = 2" do
expect(search_insert([1,3,5,6], 2)).to eq(1)
end
it "nums = [1,3,5,6], target = 7" do
expect(search_insert([1,3,5,6], 7)).to eq(4)
end
end