Search Insert Position

Given a sorted array of distinct integers and a target value, return the index if the target is found. If not, return the index where it would be if it were inserted in order.

Example 1:

Input: nums = [1,3,5,6], target = 5
Output: 2

Approach

Java

public class SearchInsertPosition {
    public static void main(String[] args) {
        int[] nums = { 1356 };
        int target = 5;
        System.out.println(searchInsert(nums, target));
    }

    static int searchInsert(int[] numsint target) {
        int low = 0, high = nums.length;

        // if target value is greater then last
        // element value
        if (target > nums[nums.length - 1])
            return nums.length;

        // if target value is less than first element value
        if (target < nums[0])
            return 0;

        // search for position
        while (low <= high) {
            int mid = low + (high - low) / 2;
            if (nums[mid] == target)
                return mid;
            else if (nums[mid] > target)
                high = mid - 1;
            else
                low = mid + 1;
        }
        return low;
    }

}

C++

#include <bits/stdc++.h>
using namespace std;

int searchInsert(vector<int&numsint target)
{
    int low = 0high = nums.size();

    //if target value is greater then last
    //element value
    if (target > nums[nums.size() - 1])
        return nums.size();

    //if target value is less than first element value
    if (target < nums[0])
        return 0;

    //search for position
    while (low <= high)
    {
        int mid = low + (high - low) / 2;
        if (nums[mid] == target)
            return mid;
        else if (nums[mid] > target)
            high = mid - 1;
        else
            low = mid + 1;
    }
    return low;
}

int main()
{
    vector<intnums = {1356};
    int target = 5;
    cout << searchInsert(numstarget);
    return 0;
}


No comments:

Post a Comment