LeetCode刷题总结(C语言版)_查找类

编程总结

每每刷完一道题后,其思想和精妙之处没有地方记录,本篇博客用以记录刷题过程中的遇到的算法和技巧

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
你可以假设数组中无重复元素。
LeetCode刷题总结(C语言版)_查找类_第1张图片

二分查找:

int searchInsert(int* nums, int numsSize, int target){
    int low = 0;
    int high = numsSize - 1;
    int mid = 0;

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

    return low;
}

你可能感兴趣的:(匠心)