euisblue
35. Search Insert Position

1def search_insert(nums, target) 2 binary_search(nums, 0, nums.length-1) { |v| v - target } 3end 4 5def binary_search(arr, l, h, &proc) 6 if l <= h 7 mid = l + (h-l)/2 8 res = proc.call(arr[mid]) 9 if res == 0 10 return mid 11 elsif res > 0 12 return binary_search(arr, l, mid-1, &proc) 13 else 14 return binary_search(arr, mid+1, h, &proc) 15 end 16 end 17 return l 18end